Здравствуйте. Есть список, выводящийся на странице, с текстовым полем для изменения
while ($row = $todb->fetch_array())
{ echo $row[id];
echo $row[name];
echo '<input type="text" name="text['.$row[id].']"
value="'.$row[pages].'"><br>';
}
При нажатии на кнопку, данные, которые были введены в поле text input
должны быть записаны в базу, т.е. если такой id
и pages
существует, то сделать UPDATE
, а если не существует, то INSERT INTO
.
if (isset($_POST['submit']))
{
$text = !empty($_POST['text']) ? $_POST['text'] : null;
foreach($text as $idt => $pages) {
if ($pages != NULL) { //idt это id товара
//pages это значение
$todb = $mysqli->query('UPDATE extendtovar
SET pages = "'.$pages.'"
WHERE extendtovar.id = "'.$idt.'"');
}
else {
$todb = $mysqli->query('INSERT INTO extendtovar (id, pages)
VALUES ("'.$idt.'", "'.$pages.'")');
}
}
}
При таком запросе UPDATE проходит нормально, а INSERT INTO вставляет значения 0 в поля, которые были не заполнены. При запросе
elseif ($pages != "") {
$todb = $mysqli->query('INSERT INTO extendtovar (id, pages)
VALUES ("'.$idt.'", "'.$pages.'")');
}
не вставляется ничего. Как в итоге сделать такую логику:
Посмотрите внимательно код. У вас условие, если введенные данные не пустые, обновляем запись, если пустые, вставить запись. Что просите, то и получаете. Используйте insert into on duplicate update
if (isset($_POST['submit'])) {
$text = !empty($_POST['text']) ? $_POST['text'] : null;
foreach ($text as $idt => $pages) {
if ($pages != NULL) {
$todb = $mysqli->query('INSERT INTO extendtovar (id, pages)
VALUES ("' . $idt . '", "' . $pages . '")
ON DUPLICATE KEY UPDATE pages = "' . $pages . '"');
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Подскажите, как добавить <meta name="robots" content="noindex,follow" />при пагинации от 2 и вышеТакое окончание ?page=3 Сайт на MODX Revo
Добрый день! Недавно возник вопрос, как реализован алгоритм выпадения вещей на всяких сs go рулетках, там где открывают ящики с вещами? Мучает...