while ループに複数の条件を記述できますか? そうでない場合、代替手段は何ですか?試してみたところ、while ループの条件を設定するコード行に関連するエラーが返されました。これが私の言いたいことの例です。
$s = 1;
while ($result_row = mysql_fetch_assoc($query) && $s < 5)
{
echo $result_row['id'];
$s++;
}
while ループに複数の条件を記述できますか? そうでない場合、代替手段は何ですか?試してみたところ、while ループの条件を設定するコード行に関連するエラーが返されました。これが私の言いたいことの例です。
$s = 1;
while ($result_row = mysql_fetch_assoc($query) && $s < 5)
{
echo $result_row['id'];
$s++;
}
それは可能ですが、ステートメントが正しく解釈されるようにするために必要な括弧よりも優先順位=
が低いためです。&&
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
ここでは括弧$s < 5
は必要ありませんが、わかりやすくするために括弧を含めました。
ただし、を追加することで、クエリを変更して5行のみを返すようにする方が簡単ですLIMIT 5
。
SELECT ...
FROM yourtable
ORDER BY ...
LIMIT 5
あなたは試すことができます:
$s=1
while ($result_row = mysql_fetch_assoc($query))
{
echo $result_row['id'];
$s++;
if($s>5){
break;
}
}
私はその中に何も悪いことは見ていませんが。逆に、このようなことをすることもできます。
$s = 1;
while ($result_row = mysql_fetch_assoc($query))
{
if($s < 5) {
//enter the condition
}
$s++;
}
の値は、おそらく真っぽいものを返す$result_row
かどうかのブール条件に設定されており、5 未満です。したがって、辞書として読み取ろうとしても機能しなくなります。mysql_fetch_assoc($query)
$s
$result_row
括弧を使用して、物事がどのように解析されるかを正確に指定できます。
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
このようにして、あなたが望むものである$result_row
に設定され、その代入の論理値が真っぽい何かを返し、5未満である限り、ループが続きます。mysql_fetch_assoc($query)
s