Я пытаюсь выполнить запрос внутри цикла WHILE, запущенного на mysqli_fetch_array
. Запрос дает следующее сообщение об ошибке:PHP/MySQL: одновременные запросы внутри цикла WHILE?
Error: Commands out of sync; you can't run this command now
Я узнал, что вы не можете иметь одновременно запросы. Вот мой код
$query "SELECT * FROM table";
$exec = mysqli_query($con, $query);
while($loop = mysqli_fetch_array($exec)){
$data = $loop['data'];
$sim = "SELECT * FROM table2 WHERE col1 = '$data'";
$execsim = mysqli_query($con, $sim);
$getsim = mysqli_fetch_array($execsim);
$somedata = $getsim['somedata'];
//insert $somedata and $data into table3
}
После некоторых исследований, я вижу, что store_result()
может быть полезным здесь. Извините мое невежество, поскольку это ново для меня. Нет никаких примеров/решений, которые я могу найти, которые используют это при сценарии цикла WHILE (это делает разницу?) - большинство из них также относятся к объектно-ориентированному стилю.
Что является наиболее эффективным способом решения этой проблемы?
Существует причина, по которой мне нужно использовать выбор в цикле, я буду обновлять –
Вместо того, чтобы выполнять другой запрос на выбор, основанный на результате первого, вы можете ПРИСОЕДИНИТЬ две таблицы вместе с одним запросом. –
Мне было бы любопытно; Я бы подумал: «SELECT * FROM table2 WHERE col1 IN (SELECT data FROM table)» будет получать все записи из таблицы2, где col1 соответствует данным. В этот момент вы сможете вставить table2.somedata и table2.col1 в таблицу3. –