2015-04-02 110 views
1

我想获取表格的所有行,但它只回声1行。 (最新) 试过很多,但没有为我工作。尝试了stackoverflow的答案,但它不工作。PHP PDO只读取1行

这里是我用来获取行的代码:

$stmt = $pdo->prepare("SELECT * FROM admin"); 
$stmt->execute(); 
$result = $stmt->fetchAll(); 

foreach ($result as $row) { 
    $gebruikersnaam = $row['gebruikersnaam']; 
    $wachtwoord = $row['wachtwoord']; 
} 

。希望有人能帮助我与此有关。

+0

每次迭代,它都会被覆盖,最后,你的左边是最后一个结果行 – Ghost 2015-04-02 14:39:17

回答

1

我想获取表的所有行,但它只回声1行。 (最新)

foreach ($result as $row) { 
    $gebruikersnaam = $row['gebruikersnaam']; 
    $wachtwoord = $row['wachtwoord']; 
} 

我可以打赌5块钱,你正在使用的循环之外的变量:)这就是为什么你只看到了最后一排的数据假设。您可以逐个删除fetchAll()fetch(),或者在循环中操作您的变量,以便为每行获取新值。

试试这个,你就会明白我的意思

foreach ($result as $row) { 
    print_r($row); 
} 
+0

我赌10美元! :) – Rizier123 2015-04-02 14:40:09

+0

投注封闭球员哈哈!,是的,我在循环之外使用它。它获取所有内容,但..在if语句中,我想检查值是否等于数据库中的值。当我尝试时,我只能看到最后插入的值是相等的。 – Jordy 2015-04-02 14:51:47

+0

您如何将值传递给数据库(您要检查的数据库),然后在PHP中没有执行比较,只需询问数据库是否存在或不存在? – 2015-04-02 15:14:32

0
$stmt = $pdo->prepare("SELECT * FROM admin"); 
$stmt->execute(); 
$result = $stmt->fetchAll(); 
$count = $stmt->rowCount(); 

for ($i=0; $i < $count; $i++) { 
$gebruikersnaam = $result[$i]['gebruikersnaam']; 
$wachtwoord = $result[$i]['wachtwoord']; 

echo 'Gebruikersnaam is : '.$gebruikersnaam.'<br/>'; 
echo 'Wachtwoord is : '.$wachtwoord.'<br/>'; 
} 

或者,如果你想使用的foreach:

$stmt = $pdo->prepare("SELECT * FROM admin"); 
$stmt->execute(); 
$result = $stmt->fetchAll(); 

foreach ($result as $row) { 
$gebruikersnaam .= $row['gebruikersnaam']; 
$wachtwoord .= $row['wachtwoord']; 
} 

echo 'Gebruikersnamen zijn : '.$gebruikersnaam.'<br/>'; 
echo 'Wachtwoorden zijn : '.$wachtwoord.'<br/>'; 

你要的风格是人点点,因为它会把它们全部粘在一起。