2012-05-13 79 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