0 レビュー
4 回答
whileループ条件php
2番目の例が最初の例と同じように機能しないのはなぜですか? ループの状態を見てください。まったく同じ条件ではなく、書き方が違うだけですか?
最初の例は、取得するものがなくなるとfalseになります。そして、それは停止します。 しかし、2番目の例は決して誤りになることはなく、画面に結果が表示され続け、実行されることはありません。エンドレスループ。
例の動作が異なり、まったく同じではないのはなぜですか?
//First ex
while ($rows = mysqli_fetch_assoc($query)) {
print_r($rows);
}
//second ex
$rows = mysqli_fetch_assoc($query);
while ($rows) {
print_r($rows);
}
わからない
0
レビュー
答え :
解決策:
//First ex
while ($rows = mysqli_fetch_assoc($query)) {
print_r($rows);
}
これは各反復で実行されるため、各反復で次の値を $row
内に配置します。
// second ex
$row s = mysqli_fetch_assoc($query);
while($row s){
print_r($row s);
}
上記のコードでは、最初の反復値のみを $row
に配置しています。 $row
は各反復で更新されません。したがって、これは永久に実行されます。
結論:
mysqli_fetch_assoc($query)
を呼び出すたびに、次の行が表示されます。最初の例では、$rowは、反復ごとに
mysqli_fetch_assoc($query)
を何度も呼び出すことにより、各反復で次の行を持っています。一方、2番目の例では、
mysqli_fetch_assoc($query)
は1回だけ呼び出されます。したがって、$row
は実行するたびに価値があり、無限に実行されます。
わからない
0
レビュー
答え :
解決策:
最初の解決策は、ループごとにmysqlデータをフェッチします。条件チェック内のステートメントが各チェックを実行するためです。 2つ目は1回だけ実行されます。
わからない
0
レビュー
答え :
解決策:
2番目のwhileステートメントにはwhile(condition){}
内の条件がありません。現在、変数を宣言しました。したがって、最初のステートメントと同じ方法で実行されるわけではありません。
わからない
0
レビュー
答え :
解決策:
//mysql users table
//id | nick | date
//1 | x1 | 2018-01-05
//2 | x2 | 2018-01-06
//3 | x3 | 2018-01-07
while ($row = mysqli_fetch_assoc($query)) {
print_r($row);
}
//first loop call row one
//second loop call row two
//third loop call row three
print_r(mysqli_fetch_assoc($query)); //print row one and mysql cursor jump to row two
print_r(mysqli_fetch_assoc($query)); //print row two and mysql cursor jump to row there
print_r(mysqli_fetch_assoc($query)); //print row there
//but mysqli_fetch_assoc bring one row not rows
$row = mysqli_fetch_assoc($query);
//row is null, no print and repeat
//row is null, no print and repeat
//row is null, no print and repeat
//row is null, no print and repeat
// ∞ :))
while ($row) {
print_r($row);
}
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。