За последние 24 часа нас посетил 18061 программист и 1651 робот. Сейчас ищут 1407 программистов ...

Проблемы с обновлением/добавлением строки musql

Тема в разделе "PHP для новичков", создана пользователем Magnum, 11 дек 2015.

  1. Magnum

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

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Подскажите, пожалуйста, уважаемые мастера.
    У меня возникла маленькая проблема.
    У меня есть 2 поля в таблице, и мне нужно, чтобы для одного пользователя создавалось лишь 1 строка, и при последующей работе с ним она просто обновлялась.
    Код на обновление и добавление данный в поля таблицы есть, а вот как определить, есть ли данные в этой таблице для пользователя?
    Пробовал через условия, если mysql_num_rows = 1, то обновляем, нет - добавляем новую строку, но что-то у меня не получается(
    Как еще можно реализовать? Еще добавлю, что для того, чтобы не создавались новые строки для одного пользователя, я просто добавляю в строку логин ник пользователя, и полю присваиваю в БД параметр - уникальный


    код:
    Код (PHP):
    1.     
    2.  
    3. if ($_POST['color1'] != '' && $_POST['color2'] != '') {
    4.     $color1 = mysql_real_escape_string($_POST['color1']);
    5.     $color2 = mysql_real_escape_string($_POST['color2']);
    6.  
    7.     $num = mysql_num_rows(mysql_query("SELECT FROM `gradien` WHERE `user` = ".$user['id']." LIMIT 1"));
    8.     if ($num == 1)) {
    9.     mysql_query("UPDATE `gradien` SET `color1` = '".$color1."', `color2` = '".$color2."' WHERE `user` = 1");
    10.     } else {
    11.     $query = "INSERT INTO `gradien`(user, color1, color2) VALUES('".$user['id']."', '".$color1."', '".$color2."')";
    12.     $result = mysql_query($query);
    13.     }
    14.     }
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    можно делать replace into, можно делать insert on duplicate update, а можно оставить ту логику которая есть у тебя - выборка кол-ва строк и далее решение на обновление или вставку. одно не понятно - зачем ты сначала выполняешь запрос вставки а потом проверяешь наличие строки и решаешь обновить или... вставить еще раз? что за бред?
     
  3. Magnum

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

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    спасибо за подсказку)
    Ой, я немного ошибся, строки с выполнением запроса должны быть закомментированы
     
  4. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    ну так отредактируй сообщение.