Подскажите, пожалуйста, уважаемые мастера. У меня возникла маленькая проблема. У меня есть 2 поля в таблице, и мне нужно, чтобы для одного пользователя создавалось лишь 1 строка, и при последующей работе с ним она просто обновлялась. Код на обновление и добавление данный в поля таблицы есть, а вот как определить, есть ли данные в этой таблице для пользователя? Пробовал через условия, если mysql_num_rows = 1, то обновляем, нет - добавляем новую строку, но что-то у меня не получается( Как еще можно реализовать? Еще добавлю, что для того, чтобы не создавались новые строки для одного пользователя, я просто добавляю в строку логин ник пользователя, и полю присваиваю в БД параметр - уникальный код: Код (PHP): if ($_POST['color1'] != '' && $_POST['color2'] != '') { $color1 = mysql_real_escape_string($_POST['color1']); $color2 = mysql_real_escape_string($_POST['color2']); $num = mysql_num_rows(mysql_query("SELECT FROM `gradien` WHERE `user` = ".$user['id']." LIMIT 1")); if ($num == 1)) { mysql_query("UPDATE `gradien` SET `color1` = '".$color1."', `color2` = '".$color2."' WHERE `user` = 1"); } else { $query = "INSERT INTO `gradien`(user, color1, color2) VALUES('".$user['id']."', '".$color1."', '".$color2."')"; $result = mysql_query($query); } }
можно делать replace into, можно делать insert on duplicate update, а можно оставить ту логику которая есть у тебя - выборка кол-ва строк и далее решение на обновление или вставку. одно не понятно - зачем ты сначала выполняешь запрос вставки а потом проверяешь наличие строки и решаешь обновить или... вставить еще раз? что за бред?
спасибо за подсказку) Ой, я немного ошибся, строки с выполнением запроса должны быть закомментированы