2012-06-15 7 views
0

Скажем, например, это мой код:PHP Как сравнить каждое значение массива с моим указанным значением?

$query = "SELECT * FROM ..."; 
$exec_query = mysql_query($query, $db_connect); 
$fetchdetails = mysql_fetch_array($exec_query); 

Я использую if состояние, как это:

if ($fetchdetails['field_name'] == 3) { 
do something; 
} 

else { 
} 

Но в этом, только одна строка сравнивается с fetchdetails массива. Что я могу сделать, чтобы сравнить каждую строку в этом массиве с 3? Мне не нужны решения ООП, пожалуйста, я хочу придерживаться традиционного кодирования. Спасибо.

ответ

4

Вы должны попробовать это:

while($fetchdetails = mysql_fetch_array($exec_query)) { 
if ($fetchdetails['field_name'] == 3) { 
    do something; 
} 

else { 
} 

} 

Это потому, что, с условием while(...), вы будете перебирать все Db (выбранные) записи. Петля остановится автоматически, как только mysql_fetch_array закончить запись.

Я буду помнить, что mysql_fetch_array

Возвращает массив строк, который соответствует выбранной строке, или FALSE, если нет больше строк. (от manual)

, и это позволит «вы» остановить процесс итерации.

+0

Спасибо, что работает для меня;) – PHPSrike

1

Если вы имеете в виду, что вы хотите сравнить каждую строку массива $ fetchdetails, то

foreach($fetchdetails as $index => $value) { 
    if($value == 3) { 
     // do something 
    } 
} 

Если это сделать! Если вы хотите выполнить итерацию по каждому значению SQL, см. Другой ответ.

Смежные вопросы