Простая система оценки "нравится/не нравится" в php и MySQL


Я хочу добавить простую систему рейтингов на свой случайный видеосайт (id = идентификатор YouTube)
У меня нет большого опыта работы с 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?
Я был бы признателен, если бы кто-нибудь сообщил мне, как это работает, чтобы я мог заставить свой сценарий работать.

Author: Johan, 2011-04-28

3 answers

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

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

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

 1
Author: joostdevries, 2011-04-28 14:34:24

Кнопки изображения публикуют значение координаты, нажатой, за исключением имени формы. имя входа_x и имя входа_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)");}
 0
Author: arch, 2011-04-28 15:02:00
<?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
Author: , 2013-04-01 11:34:37