PHP MySQL while循环不返回任何东西

标签 php mysql database while-loop

我对 php 和 mysql 很陌生,所以希望有更多经验的人能够在这里给我一些指导。

我有以下代码:

<?php

$npcname = $_GET['npcname'];
$npcinfo="SELECT * from npcs where name='$npcname'";
$npcinfo2=mysql_query($npcinfo) or die("could not get npc!");
$npcinfo3=mysql_fetch_array($npcinfo2);

$listquests = "SELECT * from quests where npcid = '$npcinfo3[npcid]'";
$listquests2 = mysql_query($listquests) or die("No Quests to list");
$listquests3=mysql_fetch_array($listquests2);

echo "<b>Quests Available for ".$npcname."</b><br>";

while($row=mysql_fetch_array($listquests2)) {

echo $row['name'];


}
?>

为此,我有一些看起来像这样的表:

npcs
name|location|npcid

quests
name|qid|npcid

因此任务通过 npcid 字段关联到 NPC。

我在每个表中都有一个条目。

Bob|Scrapyard|1
AND
Sort Scrap Metal|1|1

如您所见,任务和 Bob 的 npcid 均为 1。

在我的循环中,我试图列出 Bob 的所有任务。但是,在运行代码时,我没有列出任何任务。

如果我输入代码:

  $listquests3['name'];

在我的循环之外,它成功地显示了预期的“Sort Scrap Metal”。我使用循环的原因是当我添加它们时显示多个任务。

如果有人能好心地看一下代码并告诉我我做错了什么,我将不胜感激。

谢谢。

最佳答案

打印出 SQL 并针对您的数据库运行它以查看获得的结果可能是个好主意。 看看这个,看起来可能只有一个结果是在

$listquests3=mysql_fetch_array($listquests2);

行。由于没有更多结果,因此无需循环。

关于PHP MySQL while循环不返回任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439237/

相关文章:

php - tinyMCE 媒体嵌入,带有 PHP + MySql 中的媒体插件

php - 按组合连接排序

database - RESTful URI 是否应该公开数据库主键?

php - 在php中如何使用jwplayer隐藏实际路径

php - 将产品添加到购物车之前的 Magento 事件

mysql - 在应用程序中初始化一个mysql池并在模块中重用

php - 访问 POST 数据

插入语句中的sql问号

android - Android 中的 SQLIte 来自 Assets 文件夹

php - docker debian 拉伸(stretch)镜像中缺少 php-redis 存储库