您好我正在通过姓氏的第一个字母查询姓名数据库。但是,当我执行查询并打印结果时,第一个名称反复打印,而实际上有多个名称要打印出来。这是我到目前为止所拥有的。传入的数据是一个字母,在该字母中,它支持用起始字母收集所有姓氏。我做错了什么会导致这种无限循环?
function displayprofs()
{
print"<div>";
print "<p><a href = '$_SERVER[PHP_SELF]'>return to start</a>\n";
$abc=($_POST['abc']);
print"$abc";
$db = adodbConnect();
$query="Select * FROM Category WHERE Description LIKE '$abc%'";
$result=$db->Execute($query);
$row=$result->FetchRow();
while($row)
{
$name= $row['Description'];
print "<form method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]'>\n";
print"<input type='hidden' name='profy' value='$name'>";
print"<p>$name<input type='submit' name='add' value ='Submit'/></p>\n"; //submit button
print"</form>\n";
//break;
}
print"</div>";
}
答案 0 :(得分:4)
您获取$row
一次,然后启动while
循环,其条件始终为true。在$row=$result->FetchRow();
区块内遗漏while
。
答案 1 :(得分:4)
将while($row)
替换为while($row=$result->FetchRow())
并删除您在开始$row=$result->FetchRow();
while
答案 2 :(得分:0)
由于你有while($row)
,你将一遍又一遍地遍历同一行。改为更改为while($row=$result->FetchRow())
并删除之前的提取或按原样保留,并将$row=$result->FetchRow();
放在while块的末尾。
解决方案1:
while($row=$result->FetchRow())
{
$name= $row['Description'];
print "<form method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]'>\n";
print"<input type='hidden' name='profy' value='$name'>";
print"<p>$name<input type='submit' name='add' value ='Submit'/></p>\n"; //submit button
print"</form>\n";
}
解决方案2:
$row=$result->FetchRow();
while($row)
{
$name= $row['Description'];
print "<form method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]'>\n";
print"<input type='hidden' name='profy' value='$name'>";
print"<p>$name<input type='submit' name='add' value ='Submit'/></p>\n"; //submit button
print"</form>\n";
$row=$result->FetchRow();
}
答案 3 :(得分:0)
到目前为止,你知道while($row)
位可能是个错误。只是为了避免你不得不在一分钟内发布第二个问题:这不是最好的想法:
print "<form method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]'>\n";
也许考虑将其写为 :
print "<form method='post' enctype='multipart/form-data' action='{$_SERVER['PHP_SELF']}'>\n";
或:
print "<form method='post' enctype='multipart/form-data' action='".$_SERVER[PHP_SELF]."'>\n";