2016-11-22 107 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>'; 
?>