2016-11-22 1 views
1

Ich bin neu in PHP und ich arbeite mit einem Tutorial über das Anzeigen von Bildern dynamisch auf der Seite, es funktioniert gut, aber es zeigt sie vertikal und ich möchte sie horizontal sein. Ich habe eine Seite mit Code erstellt, um das zu tun, aber ich kann nicht herausfinden, wo ich den Code einfügen muss, damit die Bilder angezeigt werden. Danke für jede Hilfe. herausgefunden, Danke für die Hilfe Vertikale Ausgabe sieht wie folgt ausPHP Bilder dynamisch im Raster anzeigen

$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

Sie schließen Ihre Zeile bis zum Ende nicht. Ich denke, du musst es auf jeder Schleife schließen. Wenn der Zähler "$ i" nicht gleich Null ist, fügen Sie einen vor dem hinzu. Vielleicht brauchst du noch etwas mehr an deinem Exit-Code. Wollen Sie auch keine $ details und $ price zu den Artikeln 2 und 3 in der Liste hinzufügen? Ich würde auch Ihren Counter $ i überprüfen. Es kann einfacher sein, nur zu überprüfen, ob $ i == 3 – Claus

+0

Hallo Claus, Danke für den Vorschlag. der Code rendert ein 3 breites Gittermuster im Browser, aber was ich nicht bekommen kann, ist, die Bilder hinzuzufügen, die mit der Datenbank gehen, wie die vertikale Ausgabe tut. Ich habe es über die if-Anweisung versucht, aber das verursacht einen Syntaxfehler mit der if-Anweisung. Ich habe es in der Ausgabevariablen versucht, aber das verursacht undefinierte Variablen, wenn ich das tue, so habe ich keine Vorschläge, wohin ich es setzen soll. – ribbonman

Antwort

0

ich es bekam.

$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>'; 
?>