За последние 24 часа нас посетили 55537 программистов и 1715 роботов. Сейчас ищут 798 программистов ...

Запрос на обновление

Тема в разделе "PHP для новичков", создана пользователем Искандар, 4 окт 2017.

  1. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Всем добрый вечерь!
    Есть запрос на добавление запись:
    PHP:
    1. $out[] = "('".$surname."', '".$name."', '".$patronymic."', '".$month."', '".$year."')";
    2. $query = "INSERT INTO `edit` (`name`, `patronymic`, `$month`, `$year`) VALUES ".implode(",", $out);
    Если на "обновление запись" как будет выглядит запрос?
    Ещё есть поле 'id' - для обновление...
    Спасибо!
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @Искандар
    Может ты не правильно вопрос сформулировал, вот я например тебя не понял, перефразируй вопрос, и тогда суть будет яснее.
     
    Искандар нравится это.
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    UPDATE SET
     
  4. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Вот запрос который я написал, но неработает:
    PHP:
    1. $query = "UPDATE `edit` (`name`, `patronymic`, `month`, `year`) SET ".implode(",", $out) WHERE id=$id;
    Почему не работает?(не обновляет данные)
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @Искандар
    Походу массивчик у тебя не в поряде $out[]= и дальше пошло а надо внутри скобок этот твой массивчик создавать.
     
    Искандар нравится это.
  6. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Нет. Массив без ощибок.
    Когда этот же массив исползвать для INSERT INTO всё работает. Добавляется записи.
    Updete не хочет(
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @Искандар
    От куда ты берешь $id и какое ему значение по умолчанию присвоено?
     
    Искандар нравится это.
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    выглядит так, будто значения для вставки не взяты в кавычки.
    Посмотри какой запрос в итоге получается, сделай тупо echo запроса.
     
  9. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Доброе утро!
    Страница вообше не загружается
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Специально для этого случая существует подробная инструкция: http://phpfaq.ru/debug
     
    Искандар нравится это.
  11. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Искандар в самом начале скрипта пропиши
    PHP:
    1. ini_set('error_reporting', E_ALL);
    2. ini_set('display_errors', 1);
    3. ini_set('display_startup_errors', 1);
    --- Добавлено ---
    потом echo по query и exit после неё. И смотри что там не так
     
    Искандар нравится это.
  12. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Ребята спасибо всем. Оказывается проблема была в пробелах. В запросе были пробелы, удалил всё работает.
    Теперь другой вопрос Как при нажатии на флажок что бы valut="1"
    Сейчас код вот такой (данные берутся из базы):
    PHP:
    1. value="<?php echo $row[0];?>"
    Или создать другую тему?
     
  13. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Как при нажатии что?
     
  14. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    При нажатии checkbox. Вот код на этот столбец:
    HTML:
    1. <td><input type="checkbox" name="galka[]" value="<?php echo $row[0];?>" <?php if ($row[0]==0) $checked = ''; else $checked = 'checked="checked"'; echo $checked;?>/></td>
     
  15. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Искандар ты не понял. Я спрашиваю что должно произойти при нажатии. Ты что переводишь на русский гугл транслейтом?
     
  16. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Извините за мой Французский (Я не русский).
    Есть галочка, при нажатии на галочку, у галочки value можно присваивать "1".
    Сейчас я поставлю галочку, сохраняю в базу, там сохраняется " ".
    Вот как мне сделать что бы отправилась единичка.
    Надеюсь Вы меня поняли)
     
  17. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Я лично думаю, что рациональнее это сделать на JS (я об изменении значения чекбокса с 0 на 1 и обратно), а потом уже это значение передавать php скрипту.
     
  18. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Вот этого я больше всего боялся)
    Я в JS ноль(
     
  19. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Искандар делаешь короче следующие
    HTML:
    1. <tag onclick="changeVal(this)" />
    2.  
    3.     function changeval (thisis) {
    4.            thisis.setAttribute('value', 1)
    5.     }
    --- Добавлено ---
    только ты возмьи из моего tag атрибут onclick и вставь в свой tag
    --- Добавлено ---
    сори ошибся подправил слегка
     
  20. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Так себе решение... У него теперь будет всегда чекбокс равен 1, и не важно, нажат он или нет
     
  21. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    ты идиот? Иди вставь и проверь.
    --- Добавлено ---
    @Искандар ещё можно узнать текущее значение
    HTML:
    1. <tag onchange="chengeVal(this)" />
    Код (Javascript):
    1. function changeVal(thisis) {
    2.     var check = thisis.getAttribute('checked');
    3.     alert('Я твой активный или не активный чекбокс:'+check);
    4.     //or
    5.     console.log('Я твой активный или не активный чекбокс:'+check)
    6. }
     
  22. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Тут есть идиот, и это явно не я. Ты сам свой код то проверял? Ну изменил ты на 1, а потом передумал, и решил чек убрать, а единица в нем так и осталось, хотя он не уже не выбран.
    --- Добавлено ---
    Подключаешь библиотеку jquery <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    и пишешь
    Код (Javascript):
    1. <script>
    2. $("[type=checkbox]").change(function() {
    3.     $(this).val($(this).prop('checked')?1:0);
    4. });
    5. </script>
     
  23. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Вопрос ТС повтори.
    --- Добавлено ---
    найс ему нужно единичку сменить а ты говоришь ему тяни библу весом с тонну. Рили?
     
  24. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Griffter, реально ради этого подключать целый фреймворк лишнее)).
    HTML:
    1. <input type="checkbox" name="test" onchange="javascript: this.checked ? this.value = 1 : this.value = 0">
    --- Добавлено ---
    Вообще, чек если убрать на сервер ничего не передастся, так что по идее можно этим не париться, но конечно, лучше предусмотреть.
     
    Искандар нравится это.
  25. Griffter

    Griffter Новичок

    С нами с:
    27 сен 2017
    Сообщения:
    92
    Симпатии:
    25
    Полностью согласен, просто на скорую руку написал)) И просто в моем решение не нужно было в каждый чекбокс добавлять "onchange" или "onclick", может у вас их тясячи на сайте)