繁体   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