Простая рейтинговая система «нравится / не нравится» в php и MySQL - PullRequest
4 голосов
/ 28 апреля 2011

Я хочу добавить простую систему рейтинга на мой случайный видео-сайт (id = youtube id)
У меня нет большого опыта работы с php и MySQL, и я не уверен, как обновить поле с помощью кнопок отправки следующим образом:

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name"rateform">
  <input name="rateup" type="image" src="up.png" id="rateup" value="rateup" />
  <input name="ratedown" type="image" src="down.png" id="ratedown" 
   value="ratedown" />
</form>
<?PHP
mysql_connect(",",",",",")or die(mysql_error());
mysql_select_db(",")or die(mysql_error());
if ($_POST['rateup'])
{
    mysql_query("UPDATE utube SET rating = rating + 1 
                WHERE (id = $pageid)");} else if ($_POST['ratedown']) {
    mysql_query("UPDATE utube SET rating = rating - 1 
                WHERE (id = $pageid)");}

?>

Что я должен сделать, чтобы связать HTML и PHP вместе?
Все операторы возвращают правильные значения сами по себе (т. Е. $ Pageid)
но когда я нажимаю кнопки, с полями ничего не происходит.

Когда я помещаю запрос mysql непосредственно в phpmyadmin, он также работает,
Я просто не уверен, как html общается с php?
Я был бы признателен, если бы кто-то сообщил мне о том, как это работает, чтобы я мог заставить мой сценарий работать.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2011

Давайте начнем находить проблему: я могу только представить две причины для этого:

  • PHP не подключается к БД. Попробуйте выполнить запрос непосредственно из вашего сценария (исключив его из оператора if.
  • Оператор if по какой-то причине неверен: попробуйте заменить mysql_query на print('up'); и print('down');

Кстати, else if - это утверждение, состоящее из одного слова. Вы можете заменить его на elseif.

0 голосов
/ 01 апреля 2013
<?PHP
mysql_connect("hostname","username","password")or die(mysql_error());
mysql_select_db("dbname")or die(mysql_error());
if ($_POST['rateup'])
{
    mysql_query("UPDATE utube SET rating = rating + 1 
                WHERE (id = $pageid)");} else if ($_POST['ratedown']) {
    mysql_query("UPDATE utube SET rating = rating - 1 
                WHERE (id = $pageid)");}

?>
0 голосов
/ 28 апреля 2011

Кнопки с изображениями публикуют значение координаты после нажатия, кроме имени формы. inputname_x & inputname_y

if ($_POST['rateup_x'])
{
    mysql_query("UPDATE utube SET rating = rating + 1 
      WHERE (id = $pageid)");} else if ($_POST['ratedown_x']) {
    mysql_query("UPDATE utube SET rating = rating - 1 
      WHERE (id = $pageid)");}
...