Обновите поле mysql, добавив пользователей, если выполняется повторный поиск - PullRequest
0 голосов
/ 04 октября 2011

У меня есть сайт, где поиски пользователя помечены его идентификатором.Прямо сейчас, если другой пользователь ищет дубликат, он добавляет +1 к полю подсчета, которое у меня есть, но при этом он сохраняет идентификатор исходного пользователя, который его искал.

Как мне начать создавать «массив» идентификаторов пользователей для поля userId в моей таблице при повторном поиске.

    $sql="INSERT INTO trending (searchstring, timecount, userSearch) VALUES('$_POST[contentVar]', NOW(), '$uid') ON DUPLICATE KEY UPDATE count = count + 1";

searchstring - поиск пользователя, timecount - время, userSearch - идентификатор пользователя, который его искал.

Ответы [ 3 ]

0 голосов
/ 04 октября 2011

Рассматривали ли вы вставку новой строки для каждого поиска, тогда вы можете запросить таблицу, когда вам нужно, по $ uid и сформировать массив таким образом.

0 голосов
/ 04 октября 2011

Существует два возможных подхода: 1. создать новую таблицу, в которой будут храниться идентификаторы пользователей, или изменить столбец userSearch для хранения сериализованного массива.И то, и другое невозможно сделать, просто изменив запрос UPDATE.

0 голосов
/ 04 октября 2011

SQL-инъекция
Никогда не вставляйте суперглобальные переменные непосредственно в SQL.С частью update вы не должны забывать ключевое слово set.

Делайте это так:

$content = mysql_real_escape_string($_POST['contentvar']);
$uid = mysql_real_escape_string($uid);
$sql="INSERT INTO trending (searchstring, timecount, userSearch)
      VALUES('$contentvar', NOW(), '$uid') 
      ON DUPLICATE KEY UPDATE SET count = count + 1";

См .: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
И: Как работает SQL-инъекция из комикса XKCD «Таблицы Бобби»?

...