2016-11-08 8 views
1

Ich versuche, mehrere Arrays in einer Tabelle anzuzeigen, so dass jeder Wert in einer separaten Zeile innerhalb der Tabelle ist.Mehrere Arrays in einer HTML-Tabelle anzeigen

Dies ist meine aktuelle Setup:

<?php 

$id = $_GET['id']; 

$result = mysqli_query($mysqli, "SELECT * FROM invoices WHERE id=$id"); 

while($res = mysqli_fetch_array($result)) 
{ 
?> 

<tr> 
    <td><? echo $res['partnumber']; ?></td> 
    <td><? echo $res['partdescription']; ?></td> 
    <td><? echo $res['partprice']; ?></td> 
    <td><? echo $res['partquantity']; ?></td> 

<?php 
    } 

?> 

Welche zeigt Folgendes:

Screenshot

enter image description here

stattdessen ich es brauchen jeden Wert in einer separaten Zeile angezeigt werden

Ich habe folgendes versucht, aber es wiederholt seinen Wert immer und immer wieder.

<? foreach ($res as $row) : ?> 
<tr> 
    <td><? echo $row['partnumber']; ?></td> 
    <td><? echo $row['partdescription']; ?></td> 
    <td><? echo $row['partprice']; ?></td> 
    <td><? echo $row['partquantity']; ?></td> 
</tr> 
<? endforeach; 
} 
?> 
+0

sieht aus wie Ihre Werte verkettete Zeichenfolgen sind. Ist '" asdf, aasdfas, asdf "' einzelner Datenbankwert? –

+0

$ partnumber = $ _POST ['partnumber']; \t $ partnumberarray = implode (",", $ partnumber); – JCD

Antwort

0

Wenn Sie für jede Spalte neue Linie müssen einfach neue tr für jede td

Versuchen Sie, diese müssen hinzufügen:

<? foreach ($res as $row) : ?> 
    <tr> 
     <td><? echo $row['partnumber']; ?></td> 
    </tr> 
    <tr> 
     <td><? echo $row['partdescription']; ?></td> 
    </tr> 
    <tr> 
     <td><? echo $row['partprice']; ?></td> 
    </tr> 
    <tr> 
     <td><? echo $row['partquantity']; ?></td> 
    </tr> 
<? endforeach; ?> 
1

Zu allererst Code für SQL-Injection verwundbar ist, machen sicher zu sichern $id (ex. $id = (int)$_GET['id'];) vor dem Einfügen in Ihre Abfrage Zeichenfolge.

dann versuchen:

while($res = mysqli_fetch_array($result)) 
{ 
?> 
<tr> 
    <td><? echo $res['partnumber']; ?></td> 
</tr><tr> 
    <td><? echo $res['partdescription']; ?></td> 
</tr><tr> 
    <td><? echo $res['partprice']; ?></td> 
</tr><tr> 
    <td><? echo $res['partquantity']; ?></td> 
</tr> 
<?php 
    } 

?> 
0

Beachten Sie die Änderung in den Start geschweiften Klammern, und dass ich entfernt die endforeach Sie verwendet, und die Tabellen-Tags ...

Jetzt können Sie davon Gebrauch machen in Ihrer für jede Schleife.

<table> 
<? foreach ($res as $row) { ?> 
    <tr> 
    <td><? echo $row['partnumber']; ?></td> 
    <td><? echo $row['partdescription']; ?></td> 
    <td><? echo $row['partprice']; ?></td> 
    <td><? echo $row['partquantity']; ?></td> 
    </tr> 
<? 
    } 
?> 
</table> 

Ich denke, das den Trick tun sollte

0

Das ist, was ich mit dem Code bekommen: (Ich werde das Sicherheitsproblem beheben, nachdem ich diese Arbeit erhalten, danke)

<?php 

    $id = $_GET['id']; 


    $result = mysqli_query($mysqli, "SELECT * FROM invoices WHERE id=$id"); 

    while($res = mysqli_fetch_array($result)) 
    { 
    ?> 
    <? foreach ($res as $row) { ?> 
<tr> 
<td><? echo $row['partnumber']; ?></td> 
<td><? echo $row['partdescription']; ?></td> 
<td><? echo $row['partprice']; ?></td> 
<td><? echo $row['partquantity']; ?></td> 
</tr> 
    <? 
    } 

    } 

    ?>