0

こんにちは、姓の最初の文字で名前のデータベースを照会しています。ただし、クエリを実行して結果を出力すると、実際には出力する名前が複数あるのに、最初の名前が何度も​​出力されます。これが私がこれまでに持っているものです。渡されるデータは、その文字で始まるすべての姓を収集することを想定した文字です。この無限ループを引き起こす可能性のある私が間違っていることは何ですか?

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>";  
}
4

4 に答える 4

4

$row一度フェッチしてからwhile、その条件を常に真にしてループを開始します。ブロック$row=$result->FetchRow();内に行方不明。while

于 2012-12-15T10:52:37.730 に答える
4

while($row)と置き換えますwhile($row=$result->FetchRow())

開始する前に書いたものを削除し$row=$result->FetchRow();ますwhile

于 2012-12-15T10:54:19.463 に答える
0

while($row)ここまでで、ビットがおそらく間違いであることがわかりました。すぐに 2 つ目の質問を投稿しなくて済むように: これは最善のアイデアではありません:

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";
于 2012-12-15T10:57:39.823 に答える
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();
    } 
于 2012-12-15T10:55:00.913 に答える