最初のコード:
while($thisValue = mysql_fetch_assoc($someUnrelevantPreviousQuery)) {
if($thisValue['thisOne']=='something') {
$query = mysql_query("Some query");
$result = mysql_num_rows($query);
if($result) {
while($result2 = mysql_fetch_assoc($query)) {
/* Do this */
}
}else echo "Error 1";
}else
if($thisValue['thisOne']=='something else') {
$query = mysql_query("Some other query");
$result = mysql_num_rows($query);
if($result) {
while($result2 = mysql_fetch_assoc($query)) {
/* Do that */
}
}else echo "Error 2";
}
}
したがって、このコードには 1 つの問題と 1 つの質問があります。
問題:
最初の while が 2 つの値を返す場合、$thisValue['thisOne']=='something' AND $thisValue['thisOne']=='something else'
2 つのクエリを実行する必要があります。最初の「if」に 1 つ、次に 2 番目に 1 つ。ただし、実際には、検索は機能します$thisValue['thisOne']=='something'
が、ループは停止し、他の値に対しては何もしません。どうして?
編集: また、最初の while のみが返さ$thisValue['thisOne']=='something else'
れる場合、代わりに次の if ステートメントに進む必要があるときに、「エラー 1」エコーが返されます。
質問:
これはこれを行う正しい方法ですか?つまり、別のループまたはメソッドを使用する必要がありますか?
PS:コードは私にはかなり自明のように思えます。そのため、説明しませんでした。