мой код:Хранить декодируются данные к различным ID
//This is the data I am getting [{"x":1,"y":0,"width":2,"height":10},{"x":6,"y":0,"width":2,"height":9}]
<?php
$position = json_decode($_POST['positionData'], true);
$select_id = "SELECT id FROM homegrid";
$select_id_exec = mysql_query($select_id);
//print_r($position[1]);
//print_r($position[2]);
//getting result seperately
foreach ($position as $entry) {
$x = $entry['x'];
$y = $entry['y'];
$width = $entry['width'];
$height = $entry['height'];
$positionjson = json_encode($entry);
//print_r($positionjson);
while($idFromDB = mysql_fetch_assoc($select_id_exec)) {
//print_r($idFromDB);
//echo $update = "update homegrid set position = '$positionjson' WHERE id = '" . $idFromDB['id'] . "' ";
//mysql_query($update);
}
}
?>
Вывод запроса на обновление является
update homegrid set position = '{"x":6,"y":0,"width":2,"height":9}' WHERE id = '7'
update homegrid set position = '{"x":6,"y":0,"width":2,"height":9}' WHERE id = '8'
, что означает, что результат последней позиции массива становится.
Как я могу получить результат, как
update homegrid set position = '{"x":1,"y":0,"width":2,"height":10}' WHERE id = '7'
update homegrid set position = '{"x":6,"y":0,"width":2,"height":9}' WHERE id = '8'
?
Моя структура таблицы приводится ниже
id position
7 {"x":1,"y":0,"width":2,"height":10}
8 {"x":6,"y":0,"width":2,"height":9}
Не могли бы вы помочь мне решить эту проблему?
Узнайте о [ 'var_dump();'] (http://php.net/manual/en/function.var-dump.php) вместо 'print_r();'. Вы получите больше информации. – D4V1D
Если у вас нет опции 'ORDER BY' в запросе' SELECT'? В противном случае он может возвращать идентификаторы в любом порядке, поэтому у вас не будет никакого контроля над тем, какой идентификатор получает какую позицию. – Barmar
Ваша проблема в том, что в первый раз через цикл 'foreach' вы потребляете все результаты в наборе результатов' $ select_id_exec'. Итак, во второй раз тщательный цикл foreach больше нет в результирующем наборе '$ select_id_exec' – RiggsFolly