2011-04-28 141 views
3

我想添加一個簡單的評級系統到我的隨機視頻網站(id = youtube id)
我沒有太多的經驗與PHP和MySQL,我不是知道如何更新使用這種方式提交按鈕的領域:簡單喜歡/不喜歡評級系統在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它也可以,
我只是不確定如何與PHP通信與PHP?
我會很感激,如果有人告訴我這是如何工作的,所以我可以讓我的腳本工作。

+0

'$ pageid'從哪裏來? – mario 2011-04-28 14:33:14

+0

你的代碼中有一個可能的SQL注入,用'WHERE(id ='$ pageid')「_ _(注意引號)替換'WHERE(id = $ pageid)」'並確保$ pageid被轉義mysql_real_escape_string(),請參閱:http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain – Johan 2011-04-28 14:49:57

+0

@mario @Johan哦哇,我覺得這很愚蠢。 $ pageid需要在引號中,因爲它是一個varchar字符串。添加引號固定了一切,現在評價作品。 $ pageid只是從我的id表中返回一個隨機值(所以每次刷新都會給出一個隨機視頻來觀看。)我會看看修復sql注入,再次感謝! – blodey 2011-04-28 15:03:14

回答

1

讓我們開始尋找這個問題:我只能想象兩個原因:

  • PHP沒有連接到數據庫。嘗試直接從您的腳本執行查詢(取出來的if聲明
  • if說法是錯誤的因爲某些原因:嘗試mysql_queryprint('up');print('down');

順便更換,else if是一個字的語句,你可以用elseif取代它。信息,用戶點擊

+0

非常感謝,它幫助我找出問題所在。我做的mysql_query肯定有問題。 – blodey 2011-04-28 14:57:15

0

圖像按鈕座標值,除了形式的名稱。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)");} 
0
<?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)");} 

?>