Добрый вечер, ситуация: выполняю запрос к базе, в ответ получаю два поля, в которых содержаться цифры, нужно проверить наличие среди них одной цифры. Если использую in_array, то баян, если array_search, получается. С описания in_array понял, что для таких ситуаций нужно использовать ее, как быть?
array_search - ищет элемент в массиве, и если найден - выдает его индекс а in_array - проверяет, есть ли какая-то переменная в этом массиве и выдает true/false
lorddexon, я в курсе, объясню по-другому: запрос вернул два столба (поля): - field1 - field2 данные примерно такие: field1 fiel2 1 0 1 3 1 4 2 5 2 6 Мне нужно проверить существование в массиве ($row = mysql_fecth_array ($result)) цифра, 1, к примеру. Как лучше быть?
PHP: <?php $i=1; while ($row = mysql_fecth_array ($result)){ if(in_array($i, $row){ tra-la-la($row); } } И что не работает?
До тех пор, пока тебе известен индекс, по которому можно найти значение. А если неизвестен? Джедайский способ рухнет.
Mr. T Посмотри что у тебя вообще в массиве print_r($row); а потом как тебе советовали, все должно работать.
Апельсин если впомнишь, джедайские фильмы начинаются "давным давно..." плохо пробовал. значит значение, которое подаёшь, действительно не имеется в массиве
PHP: <?php $_GET['id'] = intval ($_GET['id']); $result = $db->query ('SQL-запрос'); $num_rows = $db->num_rows ($result); for ($i = 0; $i < $num_rows; $i++) { $row = $db->fetch_array ($result); } if (!in_array ($_GET['id'], $row)) die ('Hacking attempt!'); ?> И что здесь, может быть, не так?
Тогда надо уточнить задачу. Подозреваю что можно заменить 6 строчку на что-то вроде: Код (Text): $dbRow = $db->fetch_array ($result); $row[]=$dbRow[id];
У меня запросом два поля выбирается, нужно по ним осуществить поиск ID, если делать, как в последнем сообщение, то if внутри for не пройдет, нужно выносить, верно?
Я имел ввиду 6 строчку из PHP: <?php $_GET['id'] = intval ($_GET['id']); $result = $db->query ('SQL-запрос'); $num_rows = $db->num_rows ($result); for ($i = 0; $i < $num_rows; $i++) { $row = $db->fetch_array ($result); } if (!in_array ($_GET['id'], $row)) die ('Hacking attempt!'); ?> Если надо проверять оба поля то оба поля надо будет пихать в массив.