Intereting Posts
Проверка пар ключ / значение между массивами t.replace не является функцией (…) конвертировать url в ссылки из строки, за исключением случаев, когда они находятся в атрибуте тега html как получить название категории текущего продукта (на странице сведений о продукте) в magento Как получить ISP посетителя через PHP? оптимизация скорости preg_replace Проверьте, правильно ли сформирован удаленный файл XML с PHP двоичный параметр данных в cURL Как сборка мусора работает в PHP? А именно, как очищаются локальные функциональные переменные? Отображение возможных комбинаций строк unserialize () значение базы данных и поместить ее в json_encode после foreach sprintf – повторяющиеся аргументы Как преобразовать массив байтов в целое число в php? Как создать домен аддона с помощью xmlapi-php? Как получить адрес электронной почты при аутентификации пользователя с помощью Google Oauth2 и people.me

Получить массив и использовать его в запросе mysql с php

Я хочу сделать запрос Mysql следующим образом:

$sql = mysql_query("SELECT * FROM myTable WHERE id='11' AND number='23' AND value='45' AND result='101' "); 

Я хочу изменить переменную WHERE для mysql_query, используя элемент массива $ myArray.

 $myArray[0] = array(11, 23, 45, 101); => this is the current query $myArray[1] = array(21, 31, 70, 58); $myArray[2] = array(8, 77, 68, 94); 

Я попытался получить результат следующим образом:

 foreach($myArray[] as $singleRow) { foreach($singleRow as $myElement) { $sql = mysql_query("SELECT * FROM myTable WHERE id='". $myElement ."' AND number='". $myElement ."' AND value='". $myElement . "' AND result='". $myElement ."' "); } } 

Или вот так:

 for ($i=0; $i<count($myArray); $i++) { foreach($myArray[$i] as $myElement) { $sql = mysql_query("SELECT * FROM myTable WHERE id='". $myElement ."' AND number='". $myElement ."' AND value='". $myElement . "' AND result='". $myElement ."' "); } } 

Оба ошибаются … Как сделать правильный?

благодаря

Не знаете, почему вы пытаетесь это сделать, особенно учитывая, что функции mysql_ * устарели, но, ради изучения, в этом случае вы можете сделать что-то вроде этого:

 foreach($myArray as $row) { $sql = mysql_query( "SELECT * FROM myTable WHERE id='". $row[0] ."' AND number='". $row[1] ."' AND value='". $row[2] . "' AND result='". $row[3] ."' "); } 

Вы добавляете слишком много циклов и не указываете правильные переменные в нужное время:

 foreach($myArray as $singleRow) { $sql = mysql_query("SELECT * FROM myTable WHERE id='". $singleRow[0] ."' AND number='". $singleRow[1] ."' AND value='". $singleRow[2] . "' AND result='". $singleRow[3] ."' "); } 

Я бы рекомендовал переключиться на PDO или mysqli. Не только функции mysql_ *, устаревшие и очень подверженные SQL-инъекции, как PDO, так и mysqli позволяют отправлять массив в качестве параметров и будут заботиться о кавычках-инкапсуляции для вас.