[英]Php - While loop data MySQL
我做了一個while循環來顯示我的桌卡上的數據。 問題是它不顯示表的第一行
$reponse = $bdd->query('SELECT * FROM cartes');
$donnees = $reponse->fetch();
while ($donnees = $reponse->fetch()) {
?>
<p>
<strong>Carte: </strong> <br /><br />
<u>ID:</u> <?php echo $donnees['ID']; ?><br />
<u>Propriétaire:</u> <?php echo $donnees['nom']; ?><br />
</p>
<?php
}
$reponse->closeCursor();
?>
我的桌子:
CREATE TABLE IF NOT EXISTS `cartes` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
PRIMARY KEY (ID)
) ENGINE=INNODB DEFAULT CHARSET=latin1 AUTO_INCREMENT=51;
謝謝
代碼的“違規”行是$donnees = $reponse->fetch();
正如@Goudea Elalfy在評論中指出的那樣。
這樣做的原因是因為在您按以下方式獲取數據之后
$reponse = $bdd->query('SELECT * FROM cartes'); //Fetches the data
然后,您從返回的結果中獲取一行。
$donnees = $reponse->fetch(); //Fetches the first row from the result set
然后在while循環中再次獲取數據:
while ($donnees = $reponse->fetch()) { // starts from the second row in the result set.
但是,由於您已經准備好讓結果集一次返回結果集的一行,因此響應在while循環中返回SECOND組結果/數據,並且每次循環響應時,您都將獲得下一個數據集。
您可以將其視為一個數組,第一次調用結果集將獲得$response[0]
,第二次調用結果集將獲得$response[1]
,依此類推。
$reponse = $bdd->query('SELECT * FROM cartes');
$donnees = $reponse->fetch();
$reponse->fetch()
將從響應中獲取第一行。 因此,在while循環中執行$reponse->fetch()
時,它將從第二行開始。 所以你需要刪除$donnees = $reponse->fetch();
在while循環之外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.