Скрипт для исключения повторяющихся значений
Добавлено: 13 янв 2012, 20:28
Пишу php скрипт, который в случае если подобная запись уже есть в базе данных не записывает снова. Сначала запрос к базе возвращающий 1 при наличии такой же записи. Затем если значение запроса не равно 1, тогда делаю запись. При помощи echo вывожу одно из записываемых значений. Однако, возвращаемый результат представляет собой ошибку следующего вида
И данные, все равно, записываются в базу. Предполагаю, что ошибка в сравнение значения запроса и единицы. Поставил (int), но ен помогло. Помогите корректо составить сравнение.
Вот код:
Код: Выделить всё
<br /><b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>/home/h19159/data/www/aaa.ru/l.php</b> on line <b>36</b><br />1111
Вот код:
Код: Выделить всё
<?php// данные доступа к базе данных$db_host="localhost"; // обычно не нужно изменять$db_user="****"; // имя пользователя БД$db_password="****"; // пароль БД$db_name = "****"; // имя БД$table_name = "m"; // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо// данные приложения$app_id = '****'; // id приложения$api_secret = '****'; // защищенный ключ приложения $auth_key = $_POST['auth_key'];$viewer_id = $_POST['viewer_id'];$like_id = $_POST['like_id']; // соединение с БД mysql_connect($db_host, $db_user, $db_password) or die (mysql_error()); mysql_select_db($db_name) or die (mysql_error()); mysql_query("SET NAMES 'utf8'"); // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1)) $query = 'select max(1) as "ex" from '.$table_name.'` where EXISTS ( SELECT * FROM `'.$table_name.'` WHERE `id` ='.$viewer_id.' and `like` ='.$like_id.' )'; $sql = @mysql_query($query); $res=mysql_fetch_array($sql); if ((int)$res[ex]!=1) { $query = 'INSERT INTO `'.$table_name.'` (`id`, `like`) VALUES ("'.$viewer_id.'","'.$like_id.'")'; $sql = @mysql_query($query); echo $like_id; } ?>