i allready нашел ответы на другие темы, но не был рабочим ответом на мою ситуацию. У меня возникли проблемы с вставкой элементов массива в мою БД. (SQL Server). При использовании цикла foreach в PHP цикл только вставляет последний элемент массива в db, но когда i printr($arrayname)
, он показывает правильные оба элемента.Foreach PHP только вставляет последний элемент в db
Вот некоторые из кода.
Сначала я сделать выбор, чтобы назначить некоторые переменные: (подзапрос для удаления «» в избранных)
$sql="SELECT ... FROM ...";
$query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}
$sql=substr($sql, 0, -1).")";
if ($query){
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
$variable=$row['rowname'];
}
}
До сих пор так хорошо, сделал эхо на $variable
в если он печатает обе записи строк, и это произошло.
Чем я сделать INSERT:
foreach($_SESSION['cart'] as $id => $value) {
print_r($id);
$sql="INSERT INTO() ... VALUES ('$value')";
$query= sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
}
Вот где идет не так, снова я сделал print($id)
, чтобы проверить и увидеть значения. Он печатает оба значения, но только вставляет последний элемент ($variablename
) из массива $id
.
Пожалуйста, что я делаю неправильно?
Cheers.
добавить 'error_reporting (E_ALL); ini_set ('display_errors', 1);? 'В сценарии после'
INSERT должен находиться внутри цикла while, а не снаружи, otherwhise на переменной $ будет присвоено последнее значение из цикла. – mitkosoft
У вас есть опечатки? Вы используете '$ sql2', но запрос называется' $ sql', вы используете '$ variablename', который должен быть' $ value'? –