Я хочу сделать запрос 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 позволяют отправлять массив в качестве параметров и будут заботиться о кавычках-инкапсуляции для вас.