2016-11-22 104 views
1

我是新來的PHP,我正在教一個關於在頁面上動態顯示圖像的教程,它工作正常,但它垂直顯示它們,我希望它們是水平的。我用代碼創建了一個頁面,但我似乎無法弄清楚在哪裏插入代碼以顯示圖像。 感謝您的幫助。 垂直輸出看起來像這樣PHP以網格模式動態顯示圖像

$dynamicList = ""; 
$sql = mysql_query("SELECT * FROM products ORDER BY date_added ASC LIMIT 6"); 
    while($row = mysql_fetch_array($sql)){ 
      $id = $row["id"]; 
      $product_name = $row["product_name"]; 
      $price = $row["price"]; 
      $details = $row["details"]; 
      $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
      $dynamicList .= '<table width="1000px" border="0" cellspacing="0" cellpadding="6" align="center"> 
     <tr> 
      <td width="1000px" align="center"><a href="product.php?id=' . $id . '"><img style="border:#666 0px solid;" src="images/' . $id . '.jpg" width="50%" height="50%" alt="' . $product_name . '" width="77" height="102" border="1" /></a></td> 
      <td width="83%" valign="top">' . $product_name . '<br /> 
      $' . $price . '<br /> $' . $details . '<br /> 
      <a href="product.php?id=' . $id . '">order</a></td> 
     </tr> 
     </table>'; 
} 
mysql_close(); 
?> 

Grid Output

$sql = mysql_query("SELECT * FROM products ORDER BY id ASC LIMIT 15"); 
$i = 0; 
// Establish the output variable 
$dynamiclist = '<table width="1000px" border="1" cellspacing="2" cellpadding="10" align="center">'; 
while($row = mysql_fetch_array($sql)){ 

    $id = $row["id"]; 
    $product_name = $row["product_name"]; 
    $details = $row["details"]; 
    $price = $row["price"]; 

    if ($i % 3 == 0) { // if $i is divisible by our target number (in this case "3") 
     $dynamiclist .= '<tr><td>' . $product_name . '</br>' . $details . '</br>' . $price . '</td>'; 

    } else { 

     $dynamiclist .= '<td>' . $product_name . '</td>'; 
    } 
    $i++; 
} 
$dynamiclist .= '</tr></table>'; 
?> 
+1

你沒有關閉你的行直到結束。我認爲你需要在每個循環中關閉它。如果計數器「$ i」不等於零,則在前添加。在退出代碼上可能需要額外的tweeking。另外,您不想在列表中的項目2和3上添加$ details和$ price。我也會仔細檢查你的櫃檯$ i。它可能會更簡單,只是檢查$ i == 3 – Claus

+0

您好克勞斯,感謝您的建議。該代碼在瀏覽器中呈現一個3寬的網格模式,但我無法做到的是添加像垂直輸出一樣與數據庫一起使用的圖像。我已經在if語句之上嘗試過了,但是這會導致if語句的語法錯誤。我已經在輸出變量中嘗試過它,但是當我這樣做時會導致未定義的變量,所以我沒有建議將它放在哪裏。 – ribbonman

回答

0

我想通了,感謝您的幫助。

$sql = mysql_query("SELECT * FROM products ORDER BY id ASC LIMIT 15"); 
$i = 0; 
// Establish the output variable 
$dynamiclist = ""; 
while($row = mysql_fetch_array($sql)){ 

    $id = $row["id"]; 
    $product_name = $row["product_name"]; 
    $details = $row["details"]; 
    $price = $row["price"]; 


    if ($i % 4 == 0) { // if $i is divisible by our target number (in this case "3") 
     $dynamiclist .= '<tr><td width="250px" align="center"><img src="images/' . $id . '.jpg"><br/>' . $product_name . '<br /> 
      ' . $details . '<br /> $' . $price . '<br /> 
      <a href="product.php?id=' . $id . '">order</a></td>'; 

    } else { 

     $dynamiclist .= '<td width="250px" align="center"><img src="images/' . $id . '.jpg"><br/>' . $product_name . '<br /> 
      ' . $details . '<br /> $' . $price . '<br /> 
      <a href="product.php?id=' . $id . '">order</a></td>'; 
    } 
    $i++; 
} 
$dynamiclist .= '</tr></table>'; 
?>