За последние 24 часа нас посетили 20140 программистов и 1654 робота. Сейчас ищут 1876 программистов ...

добавление id товара в одно поле, оптимизация

Тема в разделе "PHP и базы данных", создана пользователем kuzroman, 1 апр 2011.

  1. kuzroman

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

    С нами с:
    26 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    Подскажите, как обновлять базу оптимальнее?

    например таким запросом:
    пример 1)
    PHP:
    1. UPDATE `stats` SET `nofrom`=`nofrom`+1 WHERE `date`='$date'
    Я обновляю поле nofrom на 1 после каждого выполнения этого кода.

    поле nofrom (INT) здесь все понятно. От сюда вопрос можно ли делать !примерно! то же самое с полем, тип которого - TEXT (или какое еще?)

    Например мне нужно в поле tovar(text) добавлять id какого то товара через запятую.
    реально ли это сделать без двойного запроса?

    т.е. я всегда сначала обращаюсь в базу (select) выбираю строку с полем, преобразую данные поля в массив, потом, добавляю к нему еще один id? дальше делаю опять строку из массива и потом обновляю поле tovar.

    Как то длинно мне кажется получается. Должно же быть оптимальное решение.

    Подскажите есть ли варианты в моем случае, сделать примерно так же как в первом примере?
     
  2. kuzroman

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

    С нами с:
    26 ноя 2010
    Сообщения:
    34
    Симпатии:
    0
    В общем сделал. Можно закрывать

    PHP:
    1. $id_tovar_arr = array_keys($_SESSION['korzina']); // выбрать все ключи массива
    2. $id_tovar_str = implode(', ', $id_tovar_arr); // все ключи массива преобразовать в строку
    3.  
    4. $zapros= mysql_query(" UPDATE `stats` SET `$from_tovar`=CONCAT_WS(',', `$from_tovar`, '$id_tovar_str') WHERE date='$date' ");
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    kuzroman
    почитай про serialize