Php mysql_fetch_数组和while循环丢失了第一个结果

Php mysql_fetch_数组和while循环丢失了第一个结果,php,mysql,loops,Php,Mysql,Loops,我对mysql\u fetch\u array()和while循环有问题。我有一个疑问: $tagsquery = mysql_query("SELECT `url` FROM `tags`, `mapa-tagow`, `statusy` WHERE `tags`.`id` = `mapa-tagow`.`tag-id` AND `statusy`.`id` = `mapa-tagow`.`article-id` AND `tags`.`tag` ='$tag' ORDER BY `url`

我对
mysql\u fetch\u array()
while
循环有问题。我有一个疑问:

$tagsquery = mysql_query("SELECT `url` FROM `tags`, `mapa-tagow`, `statusy` WHERE `tags`.`id` = `mapa-tagow`.`tag-id` AND `statusy`.`id` = `mapa-tagow`.`article-id` AND `tags`.`tag` ='$tag' ORDER BY `url` ASC ") or die("ERROR: Tags doesn't exist."); 
并导致while循环:

while($tags = mysql_fetch_array($tagsquery)) {
   echo "<a href='tags.php?url=$url'>$url</a>, ";
}   
while($tags=mysql\u fetch\u数组($tagsquery)){
回声“,”;
}   

在PHPMyAdmin中测试这个查询时,我比在PHP中得到的结果多了一个。我不知道为什么PHP总是缺少第一个结果。

您需要将代码更改为:

while($tags  = mysql_fetch_array($tagsquery)) {
    echo '<a href="tags.php?url='.$tags['url'].'">'.$tags['url'].'</a>, ';
}
while($tags=mysql\u fetch\u数组($tagsquery)){
回声',';
}
请注意,我借此机会更正了您的标记输出,有许多其他方法可以输出HTML,但在大多数情况下,这更易于阅读

如果您无法发现问题,我将您的$url更改为$tags['url'],因此我从mysql_fetch_array()获得的$tags中输出url


干杯

您需要将代码更改为:

while($tags  = mysql_fetch_array($tagsquery)) {
    echo '<a href="tags.php?url='.$tags['url'].'">'.$tags['url'].'</a>, ';
}
while($tags=mysql\u fetch\u数组($tagsquery)){
回声',';
}
请注意,我借此机会更正了您的标记输出,有许多其他方法可以输出HTML,但在大多数情况下,这更易于阅读

如果您无法发现问题,我将您的$url更改为$tags['url'],因此我从mysql_fetch_array()获得的$tags中输出url

干杯

一些可能性:

  • 您正在查看同一数据库的不同副本
  • 您已经在
    while
    循环之前开始获取结果集
另一方面,您应该构建一个标记链接数组,然后使用内爆输出它们<代码>while(){$tag_links[]='有几种可能性:

  • 您正在查看同一数据库的不同副本
  • 您已经在
    while
    循环之前开始获取结果集

另一方面,您应该构建一个标记链接数组,然后使用introde…
while(){$tag_links[]='谢谢您的快速响应,我尝试了这个。只是为了确保,如果我是为您的问题提供答案的人,为什么要将另一个标记为答案?我两个都改进了,因为我的代码中有不同的副本,我的echo代码不好。两个答案是正确的,但我只能标记一个答案。谢谢您的快速响应,我尝试了这个。只是为了请确保,如果我是为您的问题提供答案的人,为什么要将另一个标记为答案?我改进了这两个,因为我的代码中有不同的副本,并且我的echo代码不好。两个答案是正确的,但我只能标记一个答案。我可以打印所有结果,但第一个圆圈“$url”是空的,那么,在回显之后,您设置了$url=$tags['url'];因此您错过了第一行和最后一行。请参阅@Mathieu代码以正确操作。我已经改进了这一点,谢谢。我可以打印所有结果,但是第一个圆圈“$url”是空的,那么,在回显之后,您设置了$url=$tags['url'];因此您错过了第一行和最后一行。请参阅@Mathieu代码以正确操作。我已经对此进行了改进,谢谢。谢谢Kenaniah,我在其他行中有不同的副本,当我删除这行时,问题消失了。我不知道db的结果只能使用一次。谢谢Kenaniah,我在其他行中有不同的副本,当我删除这行时,问题消失了lem消失了。我不知道db的结果只能使用一次。