2016-04-07 11 views
-1

Ich versuche nur, durch meine DB zu durchlaufen, und ich bekomme nur die erste Zeile. dies ist meine Datenbank PHP:Foreach() {} stoppt nach 1. Zeile

database.class.php:

<?php 
    $pdo = new PDO('mysql:host=localhost; dbname=testing070416', 'root', 'root1'); 
    $statement = $pdo->query("SELECT * FROM users"); 
    $rows = $statement->fetch(PDO::FETCH_ASSOC); 
    var_dump($rows); 
?> 

Und die index.php:

<?php include ('database.class.php');?> 
    <table border="1"> 
     <?php foreach ($rows as $value=>$key){ 
       echo '<tr><th style="color: red;">'.$value.'</th>'; 
       echo '<td>'.$key.'</td></tr>'; 
      } 
     ?> 

das Ergebnis:

enter image description here

Es sollen 4 weitere IDs zum Schleifen vorhanden sein.

Danke!

+0

http://php.net/manual/en/pdostatement.fetch.php - http://php.net/manual/en/pdostatement.fetchall.php –

+2

[** RTM **: '-> holen() '- Ruft die nächste ** Zeile ** aus einer Ergebnismenge ab (http://php.net/manual/en/pdostatement.fetch.php). Wenn Sie mehrere Zeilen benötigen, verwenden Sie entweder ['fetchAll'] (http://php.net/manual/en/pdostatement.fetchall.php) oder verwenden Sie' fetch' in einer while-Schleife. – h2ooooooo

+0

^* meine Gefühle genau * –

Antwort

3

Verwenden fetchAll statt fetch

Wechsel von

In

$rows = $statement->fetchAll(PDO::FETCH_ASSOC); 

Dann Code für Ihren index.php

<table border="1"> 
<?php 
for($i = 0; $i == count($rows); $i++) 
{ 
    foreach($rows[$i] as $value=>$key) 
    { 
     echo '<tr><th style="color: red;">'.$value.'</th>'; 
     echo '<td>'.$key.'</td></tr>'; 
    } 
} 
?> 

Unterschied zwischen fetch und fetchAll

fetch holt tatsächlich die nächste Zeile aus einer Ergebnismenge.

fetchAll gibt ein Array zurück, das alle Ergebnismengenzeilen enthält.

+0

Salam Aleikum Hassaan, der Code hat sich geändert und läuft aber mit leeren Zellen: i.imgur.com/x9zrlT3.png –

+0

Walikum Salam, ich habe meine Antwort aktualisiert, aber der Code wurde nicht getestet. Lass es mich wissen, wenn es nicht für dich funktioniert. – Hassaan

+0

Es funktioniert ausgezeichnet. Vielen Dank! –

2

Verwenden Sie fetchAll statt holen, um alle Ergebnisse zu erhalten.

Wechsel:

$rows = $statement->fetch(PDO::FETCH_ASSOC);

An:

$rows = $statement->fetchAll(PDO::FETCH_ASSOC);

Verwandte Themen