Помогите с добавлением рейтинга к товару...

Тема в разделе "Как сделать...", создана пользователем MilkeyWay, 10 фев 2012.

  1. MilkeyWay

    MilkeyWay Постоялец

    Регистр.:
    11 июл 2011
    Сообщения:
    106
    Симпатии:
    8
    Задумал добавить рейтинг к товарам(+/-) в силу слабого знания php,никак не соображу,как рейтинг привязать к товару,чтобы поле в бд обновлялось только у текущего товара,т.е на какой странице в данный момент нахожусь,подскажите,пожалуйста,куда копать надо?
    Использую цмс виарт шоп,тут можно посмотреть демо страницы с товаром - http://www.viarts.ru/tex/canon-eos-5d.html?category_id=49
     
  2. Forza.Baron

    Forza.Baron

    Регистр.:
    26 янв 2012
    Сообщения:
    175
    Симпатии:
    76
    На таблице товаров добавьте 2 поле - plus, minus. Тогда для каждого товара будет свой плюс-минус.
    Или одно поле - reyting. Когда нажимается + +1 к reyting, если - то -1.
     
  3. MilkeyWay

    MilkeyWay Постоялец

    Регистр.:
    11 июл 2011
    Сообщения:
    106
    Симпатии:
    8
    загвоздка в том,что я не соображу как связать рейтинг с товарами,как определить,на странице какого товара я нахожусь,к какому товару обновлять рейтинг,если было нажато + или -,на этом ступор:
    создал отдельный файл php,который вызывается аяксом...
    $sql = mysql_query("SELECT item_rate FROM va_items WHERE item_id=Тут соображалка не работает") or die ("бла бла бла");
     
  4. Forza.Baron

    Forza.Baron

    Регистр.:
    26 янв 2012
    Сообщения:
    175
    Симпатии:
    76
    не надо их связать, просто на саму таблицу товаров добавьте просто 1 или 2 атрибуты. Когда берётся товар берётся и рейтинг и всё...
     
  5. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Таблица товара (предположим item )должна выглядеть примерно так:
    id | наименование товара | описание товара | изображение товара | группа товаров | подгруппа товаров | цена товара | рейтинг+ | рейтинг- | примечание
    вывод данных о товаре будет таким:
    PHP:
    $item_data=mysql_query("SELECT * FROM item WHERE `id`='какоето_id'");
    echo 
    "<table>";
    while(
    $item=mysql_fetch_assoc($item_data){
    echo 
    '<tr><td colspan="......"><a href="result_file.php?id='.$item[id].'&action=plus">+</a><a href="result_file.php?id='.$item[id].'&action=minus">-</a></td></tr>';  
    echo 
    "<tr><td>".$item['наименование товара']."</td><td>".$item['изображение товара']."</td><td>рейтинг+: ".$item['рейтинг+']."</td><td>рейтинг-: ".$item['рейтинг-']."</td><td>".$item['описание товара']."</td>............</tr>";
    }
    </
    table>
    обработка клика по ссылке происходит в файле result_file.php и происходит приблизительно таким образом:
    PHP:
    if($_GET && $_GET[id]>&& ($_GET['action']=="plus" or $_GET['action']=="minus")){
    $id=$_GET['id'];
    $action=($_GET['a']=="plus")?'рейтинг+':'рейтинг-';
    mysql_query("UPDATE item SET `".$action."`=`".$action."`+1 WHERE `id`='".$id."' ");
    }
     
  6. MilkeyWay

    MilkeyWay Постоялец

    Регистр.:
    11 июл 2011
    Сообщения:
    106
    Симпатии:
    8
    Ребят,спасибо,что откликнулись,но у меня похоже другая проблема или я чего-то не понимаю,мозг кипит уже)но вроде сделал:
    мне нужно было условие для товара,т.к рейтинг выводился для всех товаров,а мне нужно к текущему,в итоге из формы(там цмс выводит id текущего товара) скриптом получил этот id,запихал его в параметр в ссылке,в выборке в условие через $_GET указал этот параметр и теперь выводится рейтинг для текущего товара
     
  7. MilkeyWay

    MilkeyWay Постоялец

    Регистр.:
    11 июл 2011
    Сообщения:
    106
    Симпатии:
    8
    не подскажите,как бы по лучше реализовать запрет на повторное голосование для зарегистрированного пользователя?
    можно создать таблицу с id юзера,id товара и проверять,голосовал ли юзер или нет,но,насколько такой способ оправдывает себя,ведь эта таблица разрастется быстро до неведомых размеров...
     
  8. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    можно ставить куку, когда юзер голосует, ну и, соответственно, проверять наличие куки
     
  9. MilkeyWay

    MilkeyWay Постоялец

    Регистр.:
    11 июл 2011
    Сообщения:
    106
    Симпатии:
    8
    не хотелось бы использовать куки и ip-куки можно почистить,ip может быть динамическим или же юзать прокси
     
  10. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    ну если человек настолько хочет накрутить рейтинг, что начал юзать прокси и чистать куки, поверь, он накрутит, как ни защищайся...