簡體   English   中英

PHP-While循環數據MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM