За последние 24 часа нас посетили 15587 программистов и 1550 роботов. Сейчас ищут 872 программиста ...

Запрос Update, помогите

Тема в разделе "Сделайте за меня", создана пользователем kiril901, 23 дек 2015.

  1. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Re: Помогите сделать Update очень надо

    kiril901, тег
    Код (PHP):
    1.  поставить не судьба? Почему мы должны читать партянку без отступов?
     
  2. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    Re: Помогите сделать Update очень надо

    та я как надо сделаю, помогите пожалуйста или отпавьте почту я там все сделаю, 4 дня ищу, все сделал, а здесь лажа и все. пожалуйста помогите
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Помогите сделать Update очень надо

    что перезаписать? Какая структура базы данных?
     
  4. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    Re: Помогите сделать Update очень надо

    5 переменных, клиент заполняет форму, идет добавление в базу, все ниже и ниже, новые и новые данные, как отзывы, а мне нужно как в админке, вввел одни данные, соханилось, еще аз перезапись, как сделать?
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Re: Помогите сделать Update очень надо

    Кирилл, вот какая логика у вас всё-таки? Вы пишите do-while для перебора базы. Особенноcть do-while - гарантированное исполнение по крайней мере одной итерации. Вы уверены, что у вас не меньше строк? Теперь, в соседней теме вам уже ответили, чтоб insert .. on duplicate key update сработал, в базе должен стоять уникальный ключ - не в php, в самой базе создаётся. http://dev.mysql.com/doc/refman/5.7/en/constraint-primary-key.html В ключ надо включить те поля, которые не должны повторяться, чтоб mysql понимал, что если пытаетесь вставить эти поля, требуется сделать перезапись. Если что, запрос ваш выполняет не php, а сервер mysql.

    И задачу вы формулируете, уж извините, как глупый пользователь, а не как программист. Скажите чётко, по какому условию должно добавляться, а по какому перезаписываться?
     
  6. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    там может быть одно поле, а может быть 2- поля, первый раз добавляется, а вторй и последующие разы перезаписываться все поля, так что сделать надо?
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Я написал, что надо сделать. Вот что вы хотите сделать я так и не понял
     
  8. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    есть форма, там может быть одно поле всего, может 5 полей, первый раз клиент их заполняет, они добавляются на станицу, а все последующие азы эти данные обновляются на другие, которые клиент снова с тех же полях введен. сейчас ясно?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну ок. Сделайте ID клиента уникальным ключом в таблице, где хранятся эти 5 полей, тогда on duplicate key будет работать корректно. Или вообще, введите эти пять полей в таблицу с остальными данными, такими, как логин и пароль. Что такое уникальный ключ - я ссылку давал. А если вы внимательно присмотритесь к phpmyadmin или HeidiSQL, там уникальные ключи в один клик делаются. Хватит кода ждать, включайте головной мозг.

    Добавлено спустя 20 секунд:
    Кстати, primary key тоже как уникальный может использоваться, если что
     
  10. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    я правильно понял код работает хорошо, в нем менять ничего не надо? только сделать все поля уникальными? и все? и где в phpmyadmin можно быстро сделать, пожалуйста помогите.
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Я не помню наизусть, где, что делается в phpmyadmin, поскольку там обычно по-русски, на крайняк по-английски всё написано. Точно - в структуре таблицы, а конкретнее - сами. В коде надо много чего менять, но вы всё равно не поймёте, ибо программируете копипастом

    Добавлено спустя 2 минуты 47 секунд:
    Код (PHP):
    1. $insert_sql = "INSERT INTO table4 (first_name, last_name, email, facebook, vkon)" .
    2. "VALUES('{$first_name}', '{$last_name}', '{$email}', '{$facebook}', '{$vkon}') ON DUPLICATE KEY UPDATE first_name='{$first_name}', last_name='{$last_name}', email='{$email}', facebook='{$facebook}', vkon='{$vkon}'";
    3. mysql_query($insert_sql);
    4.  
    Вот здесь надо чтоб ещё ключ вставлялся, но я не видя структуры table4 (очень информативное название таблицы, просто офигеть) не могу ничего сказать. Скорее всего будет user_id, и он должен быть как раз уникальным ключом. Вы логику хоть понимаете, чего я говорю?
     
  12. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    да, user_id я не создавал у меня нет, меня просто 5 переменных, тогда я 5 сделаю уникальными, что этот код дает, который Вы написали?
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    5 делать уникальными не стоит. Как у вас связывается запись таблицы table4 с конкретным пользователем? Вы про реляционные базы данных хоть что-то читали?
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да ничего он не читал. он ж адепт попова. обрати внимание на стиль диалогов - слепые с глухим общаются. ну и дувайл. ну и полное отсутствие мозга в голове.
     
  15. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    ни с чем я не связывал
     
  16. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А надо бы. Короче, рано вам ещё проекты делать, вы основ вообще не знаете. Ну вот по вашей логике, как определить, какие атрибуты какому пользователю принадлежат? Нужно, чтоб у каждого пользователя был свой уникальный ключ. Обычно это id, для которого ставится тип автоинкремент, чтоб база сама для каждого нового пользователя генерировала уникальный ключ..
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    kiril901, выложи структуру таблицы `table4`
     
  18. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    здесь это не реально, скиньте почту, регистрация вообще к базе не относится, как сделать id и привязать? моя programmist_2016@inbox.ru
     
  19. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ну не, я так не играю..
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ты не хочешь чтобы тебе помогали все кто может?