2013-12-06 5 views
0

еще раз это я. Я пообещаю после этого, что я позабочусь о вас на некоторое время! :)Info не обновляется в базе данных

У меня есть эта рейтинговая система, которая позволит пользователю оценивать статью. Он несколько работает, но дело в том, что оно не обновляет данные в базе данных, и я понятия не имею, почему. Любая помощь будет оценена по достоинству. :)

// Connects to your Database 
mysql_connect("URL", "username", "password") or die(mysql_error()); 
mysql_select_db("db_name") or die(mysql_error()); 


    //Then we update the voting information by adding 1 to the total votes and adding their vote (1,2,3,etc) to the total rating 
if(isset($_submit['voted'])) { 
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id"); 

     Echo "Your vote has been cast <p>"; 
     } 



//Puts SQL Data into an array 
$data = mysql_query("SELECT * FROM vote") or die(mysql_error()); 

//Now we loop through all the data 
while($ratings = mysql_fetch_array($data)) 
{ 
//This outputs the sites name 
Echo "Name: " .$ratings['name']."<br>"; 

//This calculates the sites ranking and then outputs it - rounded to 1 decimal 
$current = $ratings['total']/$ratings['votes']; 
Echo "Current Rating: " . round($current, 1) . "<br>"; 




//This creates 5 links to vote a 1, 2, 3, 4, or 5 rating for each particular item 
Echo "Rank Me: "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; //The HREF was ".$_SERVER['PHP_SELF']." before 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=2&id=".$ratings['id'].">2</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=3&id=".$ratings['id'].">3</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=4&id=".$ratings['id'].">4</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=5&id=".$ratings['id'].">5</a><p>"; 
} 


?> 

Спасибо, ребята !:)

+0

По умолчанию имя пользователя и пароль для mysql в локальном хосте - root. – Madurai

+0

Что такое 'total' в' total + $ votuted, '? – Roopendra

+0

Попробуйте изменить '$ _submit ['voted']' на '$ _POST ['voted']' –

ответ

1

Relace эта линия

if(isset($_submit['voted'])) { 
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id"); 

     echo "Your vote has been cast <p>"; 
     } 

С этим

if(isset($_POST['voted'])) { 
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id"); 

     echo "Your vote has been cast <p>"; 
     } 
+0

Где вы объявляете переменную $ id? – Madurai

+0

Это ничего не меняет. Разве он не выводит идентификатор из базы данных? У меня есть таблица с переменным идентификатором, именем, числом, голосами. – raqulka

+0

попробуйте ответить на ваш запрос следующим образом: $ query = "UPDATE vote SET total = total + $ voted, votes = votes + 1 WHERE id = $ id"; echo $ query; Выход; – Madurai

0

нет Нет $ _SUBMIT суперглобальный переменная в PHP

использование $_POST или $_GET

Read here

, если вы по-прежнему есть проблемы проверки на наличие ошибок с помощью mysql_error()

mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id") 
or die(mysql_error()); 

или эхо запрос и запустить его в локальной базе данных.

, а затем поделитесь своей ошибкой с нами.

Dont использовать mysql_ как они depracated *

+1

Я постараюсь как можно скорее! Thanks man – raqulka

+0

Эй, парень! Пробовал это, и теперь он дает мне это: Примечание: неопределенная переменная: проголосовали в /home/kall0467/public_html/svale_rejser/vote.php в строке 11. Примечание: неопределенная переменная: id в /home/kall0467/public_html/svale_rejser/vote.php в строке 11 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'votes = votes + 1 WHERE id =' в строке 1 – raqulka

+0

@ user2983295, что означает, что ваша проблема решена. :) теперь проверяем $ id, откуда он приходит и почему он пуст. –

0

вы должны использовать $_GET

 //Then we update the voting information by adding 1 to the total votes and adding their vote (1,2,3,etc) to the total rating 
if(isset($_GET['voted'])) { 
mysql_query ("UPDATE vote SET total= total+$_GET['voted'], votes = votes+1 WHERE id = $_GET['id']"); 

     Echo "Your vote has been cast <p>"; 
     } 
0

Во-первых:. Использовать $_GET['voted'] вместо $_submit['voted'].

Кроме того, ссылки, которые вы создали, неверны. Изменение

Echo "<a href='index.php?site=kumu'?mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; //The HREF was ".$_SERVER['PHP_SELF']." before 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=2&id=".$ratings['id'].">2</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=3&id=".$ratings['id'].">3</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=4&id=".$ratings['id'].">4</a> | "; 
Echo "<a href='index.php?site=kumu'?mode=vote&voted=5&id=".$ratings['id'].">5</a><p>"; 

в

Echo "<a href=index.php?site=kumu&mode=vote&voted=1&id=".$ratings['id'].">1</a> | "; //The HREF was ".$_SERVER['PHP_SELF']." before 
Echo "<a href=index.php?site=kumu&mode=vote&voted=2&id=".$ratings['id'].">2</a> | "; 
Echo "<a href=index.php?site=kumu&mode=vote&voted=3&id=".$ratings['id'].">3</a> | "; 
Echo "<a href=index.php?site=kumu&mode=vote&voted=4&id=".$ratings['id'].">4</a> | "; 
Echo "<a href=index.php?site=kumu&mode=vote&voted=5&id=".$ratings['id'].">5</a><p>"; 

UPDATE

Заменить заявление:

if(isset($_submit['voted'])) { 
mysql_query ("UPDATE vote SET total= total+$voted, votes = votes+1 WHERE id = $id"); 

     Echo "Your vote has been cast <p>"; 
     } 

С:

if(isset($_GET['voted']) && is_numeric($_GET['voted'])) { 
mysql_query ("UPDATE vote SET total= total+ " . $_GET['voted'] . ", votes = votes+1 WHERE id = " . $_GET['id']); 

     Echo "Your vote has been cast <p>"; 
     } 

Конечно, для предотвращения любого SQLInjection требуется проверка и экранирование лучших параметров.

+0

Я постараюсь как можно скорее! – raqulka

+0

Когда я изменил его, он говорит следующее: Примечание: неопределенная переменная: проголосовали в /home/kall0467/public_html/svale_rejser/vote.php в строке 11 Примечание: неопределенная переменная: id в/home/kall0467/public_html/svale_rejser/vote. php в строке 11 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'votes = votes + 1 WHERE id =' в строке 1 – raqulka

+0

Смотрите мое обновление с дополнительным исправлением кода. Пожалуйста, дайте мне знать – carmine

Смежные вопросы