ホームページ  >  記事  >  バックエンド開発  >  このコードの何が問題なのかを専門家に尋ねてください。その結果、無限ループが発生します。

このコードの何が問題なのかを専門家に尋ねてください。その結果、無限ループが発生します。

WBOY
WBOYオリジナル
2016-06-23 13:36:01879ブラウズ

$result=mysql_query("SELECT * FROM st where cid = 1");
$max_num=mysql_num_rows($result);//データベース内のレコード数を取得します
srand((double)microtime()*10000000) ; // 乱数シードを生成します。


$se_pos=rand(0, $max_num-1); // 0 から最大レコード数までの乱数を取得します
$length=1 // 合計で取得するレコード数を設定します
// 以下指定された番号のレコードを取得することです。
$result_lim=mysql_query("select * from st where cid = 1 limit $se_pos,$length");
$myrow_lim=mysql_fetch_array($result_lim);


$se_pos1=rand(0, $max_num-1);
$result_lim1=mysql_query("select * from st where cid = 1 limit $se_pos1,$length");
$myrow_lim1=mysql_fetch_array($result_lim1);


while($myrow_lim=$myrow_lim1) {
$se_pos1= rand(0, $max_num-1);
$result_lim1=mysql_query("select * from st where cid = 1 limit $se_pos1,$length");
$myrow_lim1=mysql_fetch_array($result_lim1);


ディスカッションへの返信 (解決策)

$result_lim1=mysql_query("select * from st where cid = 1 limit $se_pos1,$length"); // エラーが発生しない限り、常に少なくとも 1 つを含む結果セットを返します。 Record $myrow_lim1=mysql_fetch_array($result_lim1);//つまり、$myrow_lim1 は常に空ではない配列です

$myrow_lim1 は空ではないので、このループはどのように終了するのでしょうか?

while($myrow_lim=$myrow_lim1) {


素晴らしいアドバイスをありがとうございます。 。
ここでの $myrow_lim と $myrow_lim1 は両方とも代表的な文字列であり、数値ではありません。 。では、このループはどのように書けばよいのでしょうか?

問題は解決されました。 。 。ありがとうございます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。