2016-04-07 51 views
-1

我只是想通過我的數據庫循環,而我只得到第一行。 這是我的數據庫PHP:Foreach(){}在第一行後停止

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); 
?> 

而且的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>'; 
      } 
     ?> 

結果:

enter image description here

應該有4個以上的ID循環。

謝謝!

+0

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

+2

[** RTM **:' - > fetch ()' - 從結果集中獲取下一個**行**](http://php.net/manual/en/pdostatement.fetch.php)。如果你想多行使用['fetchAll'](http://php.net/manual/en/pdostatement.fetchall.php)或者在while循環中使用'fetch'。 – h2ooooooo

+0

^*我的情緒確切* –

回答

3

使用fetchAll而不是fetch

變化從

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

進入

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

然後代碼爲您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>'; 
    } 
} 
?> 

差異fetchfetchAll之間

fetch實際上從獲取的結果集中的下一行。

fetchAll返回一個包含所有結果集行的數組。

+0

Salam Aleikum Hassaan,代碼已經更改,正在運行但空單元格:i.imgur.com/x9zrlT3.png –

+0

Walikum Salam,我更新了我的答案,但代碼未經測試。讓我知道,如果它不適合你。 – Hassaan

+0

它工作出色。謝謝! –

2

使用fetchAll而不是fetch獲取所有結果。

變化:

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

要:

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