Всем добрый вечерь! Есть запрос на добавление запись: PHP: $out[] = "('".$surname."', '".$name."', '".$patronymic."', '".$month."', '".$year."')"; $query = "INSERT INTO `edit` (`name`, `patronymic`, `$month`, `$year`) VALUES ".implode(",", $out); Если на "обновление запись" как будет выглядит запрос? Ещё есть поле 'id' - для обновление... Спасибо!
@Искандар Может ты не правильно вопрос сформулировал, вот я например тебя не понял, перефразируй вопрос, и тогда суть будет яснее.
Вот запрос который я написал, но неработает: PHP: $query = "UPDATE `edit` (`name`, `patronymic`, `month`, `year`) SET ".implode(",", $out) WHERE id=$id; Почему не работает?(не обновляет данные)
@Искандар Походу массивчик у тебя не в поряде $out[]= и дальше пошло а надо внутри скобок этот твой массивчик создавать.
Нет. Массив без ощибок. Когда этот же массив исползвать для INSERT INTO всё работает. Добавляется записи. Updete не хочет(
выглядит так, будто значения для вставки не взяты в кавычки. Посмотри какой запрос в итоге получается, сделай тупо echo запроса.
@Искандар в самом начале скрипта пропиши PHP: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); --- Добавлено --- потом echo по query и exit после неё. И смотри что там не так
Ребята спасибо всем. Оказывается проблема была в пробелах. В запросе были пробелы, удалил всё работает. Теперь другой вопрос Как при нажатии на флажок что бы valut="1" Сейчас код вот такой (данные берутся из базы): PHP: value="<?php echo $row[0];?>" Или создать другую тему?
При нажатии checkbox. Вот код на этот столбец: HTML: <td><input type="checkbox" name="galka[]" value="<?php echo $row[0];?>" <?php if ($row[0]==0) $checked = ''; else $checked = 'checked="checked"'; echo $checked;?>/></td>
@Искандар ты не понял. Я спрашиваю что должно произойти при нажатии. Ты что переводишь на русский гугл транслейтом?
Извините за мой Французский (Я не русский). Есть галочка, при нажатии на галочку, у галочки value можно присваивать "1". Сейчас я поставлю галочку, сохраняю в базу, там сохраняется " ". Вот как мне сделать что бы отправилась единичка. Надеюсь Вы меня поняли)
Я лично думаю, что рациональнее это сделать на JS (я об изменении значения чекбокса с 0 на 1 и обратно), а потом уже это значение передавать php скрипту.
@Искандар делаешь короче следующие HTML: <tag onclick="changeVal(this)" /> <script> function changeval (thisis) { thisis.setAttribute('value', 1) } </script> --- Добавлено --- только ты возмьи из моего tag атрибут onclick и вставь в свой tag --- Добавлено --- сори ошибся подправил слегка
ты идиот? Иди вставь и проверь. --- Добавлено --- @Искандар ещё можно узнать текущее значение HTML: <tag onchange="chengeVal(this)" /> Код (Javascript): function changeVal(thisis) { var check = thisis.getAttribute('checked'); alert('Я твой активный или не активный чекбокс:'+check); //or console.log('Я твой активный или не активный чекбокс:'+check) }
Тут есть идиот, и это явно не я. Ты сам свой код то проверял? Ну изменил ты на 1, а потом передумал, и решил чек убрать, а единица в нем так и осталось, хотя он не уже не выбран. --- Добавлено --- Подключаешь библиотеку jquery <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> и пишешь Код (Javascript): <script> $("[type=checkbox]").change(function() { $(this).val($(this).prop('checked')?1:0); }); </script>
Вопрос ТС повтори. --- Добавлено --- найс ему нужно единичку сменить а ты говоришь ему тяни библу весом с тонну. Рили?
@Griffter, реально ради этого подключать целый фреймворк лишнее)). HTML: <input type="checkbox" name="test" onchange="javascript: this.checked ? this.value = 1 : this.value = 0"> --- Добавлено --- Вообще, чек если убрать на сервер ничего не передастся, так что по идее можно этим не париться, но конечно, лучше предусмотреть.
Полностью согласен, просто на скорую руку написал)) И просто в моем решение не нужно было в каждый чекбокс добавлять "onchange" или "onclick", может у вас их тясячи на сайте)