/ / PHP Uzyskaj 2 wiersze danych w pojedynczej iteracji [zamknięte] - php, tablice, iteracja

PHP Uzyskaj 2 wiersze danych w pojedynczej iteracji [zamknięte] - php, tablice, iteracja

Próbuję uzyskać dwa wiersze danych w pojedynczej iteracji:

$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error());


while($row = mysql_fetch_assoc($query)){
//returns single row`
}

W tabeli html

2 linie danych w jednym wierszu

<tr>
<td>data 1</td>
<td>data 2</td>
</tr>

Odpowiedzi:

0 dla odpowiedzi № 1

Najpierw pobierz wszystkie dane do tablicy. Następnie skomponuj tablicę wielowymiarową. Możesz więc wcisnąć dwa rzędy w każdy klucz w ten sposób.

while($row = mysql_fetch_assoc($query)){
$data[] = $row;
}

$last_data = array();
$key = 0;
for($i=0;$i<sizeof($data);$i++) {
if($i%2 == 0)
{
$key++;
}
$last_data[$key][] = $data[$i];
}

Następnie możesz iterować po tabeli html.

<?php foreach ( $last_data as $key => $row) { ?>
<tr>
<?php foreach ( $row as $k => $row1) { ?>
<td> <?php echo $row1["field"] ?></td>
<?php } ?>
</tr>
<?php } ?>

(Sugestia Użyj mysqli_ * zamiast mysql_ *, aby zachować kod przy użyciu nieaktualnych rozszerzeń.)


0 dla odpowiedzi nr 2

Nie jestem pewien, czy tego chciałeś, ale spróbuj:

<tr>
<?php
$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
?>
<td><?php echo $row["col"] ?></td>
<?php
}
?>

0 dla odpowiedzi № 3

Po pierwsze - proszę nie używać mysql_query i używaćZamiast tego PDO. Po drugie - Nigdy byś tego nie zrobił w ten sposób. Istnieją sposoby, dzięki którym można to osiągnąć za pomocą reference (next ()). Ale to bardzo źle. Jako takie proponuję coś takiego:

$query = $this->db->prepare("select * from tbl_website_index");
$query->execute();
$data = array();

while ($row = $query->fetch(PDO::FETCH_OBJ))
{
$data[] = $row->fieldName;
}

$data = "<li>" . implode("</li><li>", $data) . "</li>";
print "<ul>" . $data . "</ul>";

To osiągnęło to, co próbujesz zrobić. Nie przetestowałem tego jednak.