Я довольно новичок в 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
Таким образом, квест связан с NPC через поле npcid.
У меня есть одна запись в каждой таблице.
Bob|Scrapyard|1
AND
Sort Scrap Metal|1|1
Как видите, квест и Боб имеют общий npcid, равный 1.
В своем цикле я пытаюсь перечислить все квесты для Боба. Однако при выполнении кода я не получаю никаких квестов в списке.
Если я поставлю код:
$listquests3['name'];
За пределами моей петли успешно отображается «Сортировка металлолома», как и ожидалось. Причина, по которой я использовал этот цикл, заключается в том, чтобы отображать несколько квестов при их добавлении.
Если бы кто-то был достаточно любезен, чтобы взглянуть на код и сказать мне, что я сделал неправильно, я был бы благодарен.
Спасибо.