2012-05-13 81 views
0

我想显示我从一个动态生成数据库表中,将显示图像的3列在一排像这样动态显示图像与3列PHP

"Image1 Image 2 Image 3  
Image 4 Image 5 Image 6  
etc" 

获得的图像这里是我现在的代码:

<?php 
     $dynamicList = ""; 
     while($row = sqlsrv_fetch_array($stmt)) 
      { 
       $rownumber = $row['rownumber']; 
       $end_at = $items_on_page + $start_from; 

       if (($rownumber>$start_from)&&($rownumber<=$end_at)) 
       { 
        $prod_id = $row['productID']; 
        $cat_id = $row['catalogueID']; 
        $col_id1 = $row['colour1']; 
        $col_id2 = $row['colour2']; 
        $col_id3 = $row['colour3']; 

        $sql3 = "SELECT * FROM product_colours WHERE colourID =? OR colourID =? OR colourID =?"; 
        $params3 = array($col_id1,$col_id2,$col_id3); 
        $stmt3 = sqlsrv_query($conn, $sql3, $params3); 

        $count = 1; 
        while($row3 = sqlsrv_fetch_array($stmt3)) 
        { 
         switch ($count) 
         { 
          case 1:$colour1 = $row3['colour_description'];break; 
          case 2:$colour2 = $row3['colour_description'];break; 
          case 3:$colour3 = $row3['colour_description'];break; 
         } 
         $count++; 
        } 

        $sql3 = "SELECT catalogueID, product_name, product_price, description FROM product_catalogue WHERE catalogueID = ?"; 
        $params3 = array($cat_id); 
        $stmt3 = sqlsrv_query($conn, $sql3, $params3); 

        $columncount = 0; 
$dynamicList = '<table width="744" border="0" cellpadding="6"><tr>'; 
while($row3 = sqlsrv_fetch_array($stmt3)) 
{ 
    $prod_name = $row3['product_name']; 
    $prod_price = $row3['product_price']; 
    $prod_desc = $row3['description']; 

    $dynamicList .= '<td width="135"><a href="product_details_women.php?productID=' . $prod_id . '"> 
     <img src="images/products/Small/Women/' . $prod_id . '.jpg" alt="' . $prod_name . '" width="129" height="169" border="0"> 
    </a> 
    </td> 

    <td width="593" valign="top">' . $prod_name . '<br> 
    £' . $prod_price . '<br> 
    <a href="product_details_women.php?productID=' . $prod_id . '">View Product Details</a></td>'; 

if($columncount == 2) 
{ 
$dynamicList .= '</tr><tr>'; 
$columncount = 0; 
} 
else 
{ 
    $columncount++; 
} 
} 


$dynamicList .= '</tr></table>'; 

echo $dynamicList; 

         } 

         } 
         ?> 

但由于某些原因,图像只显示在一列中。我希望能够在每行3列中显示它们。我试图把我所有的代码在while循环中,但没有工作,要么

+0

是应该产生的表是while循环外的部分。 – Aziz

回答

0
$dynamicList = '<table width="744" border="0" cellpadding="6">'; 
while($row3 = sqlsrv_fetch_array($stmt3)) 
{ 
    $prod_name = $row3['product_name']; 
    $prod_price = $row3['product_price']; 
    $prod_desc = $row3['description']; 

    $dynamicList .= '<tr><td width="135"><a href="product_details_women.php?productID=' . $prod_id . '"><img src="images/products/Small/Women/' . $prod_id . '.jpg" alt="' . $prod_name . '" width="129" height="169" border="0"></a></td><td width="593" valign="top">' . $prod_name . '<br> £' . $prod_price . '<br><a href="product_details_women.php?productID=' . $prod_id . '">View Product Details</a></td></tr>'; 

} 

    $dynamicList .= '</table>'; 

    echo $dynamicList; 
+0

我已经用您的解决方案更新了我的问题,但由于某种原因它仍然无法正常工作。我已经在顶部添加了额外的代码,所以也许会导致问题? – Alex

0
$columncount = 0; 
$dynamicList = '<table width="744" border="0" cellpadding="6"><tr>'; 
while($row3 = sqlsrv_fetch_array($stmt3)) 
{ 
    $prod_name = $row3['product_name']; 
    $prod_price = $row3['product_price']; 
    $prod_desc = $row3['description']; 

    $dynamicList .= '<td width="135"><a href="product_details_women.php?productID=' . $prod_id . '"> 
     <img src="images/products/Small/Women/' . $prod_id . '.jpg" alt="' . $prod_name . '" width="129" height="169" border="0"> 
    </a> 
    </td> 

    <td width="593" valign="top">' . $prod_name . '<br> 
    £' . $prod_price . '<br> 
    <a href="product_details_women.php?productID=' . $prod_id . '">View Product Details</a></td>'; 

if($columncount == 2) 
{ 
$dynamicList .= '</tr><tr>'; 
$columncount = 0; 
} 
else 
{ 
    $columncount++; 
} 
} 


$dynamicList .= '</tr></table>'; 

echo $dynamicList; 
+0

我已经用您的解决方案更新了我的问题,但由于某种原因它仍然无法正常工作。我已经在顶部添加了额外的代码,所以也许会导致问题? – Alex