Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка при подсчёте голосов в опросе
Форумы портала PHP.SU » » Вопросы новичков » Ошибка при подсчёте голосов в опросе

Страниц (2): [1] 2 »
 

1. LuNa82 - 05 Октября, 2011 - 11:03:59 - перейти к сообщению
Есть код (не мой, пытаюсь разобраться)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. if (!$db_conn = @mysql_connect('localhost', 'root', 'root'))
  5. {
  6. echo 'Ошибка доступа к базе данных';
  7. };
  8. @mysql_select_db('poll');
  9.  
  10.  
  11. if (!empty($vote))
  12. {
  13. $vote = addslashes($vote);
  14. $query = "UPDATE poll_results SET voices = voices + 1 where answers ='$vote'";
  15. if(!($result = @mysql_query($query, $db_conn)))
  16. {
  17.  
  18. echo 'Ошибка доступа к базе данных';
  19. }
  20. };
  21. echo '<b>Спасибо! Ваш голос учтён!</b>
  22. <br><a href="javascript:history.back(1)">Назад</a>';
  23. ?>
  24.  


Voices не считается, по видимому update не работает. Подскажите почему?!

Ошибки на экран не выводятся...
2. morosit - 05 Октября, 2011 - 11:33:44 - перейти к сообщению
LuNa82 пишет:
Ошибки на экран не выводятся...

вот тут например
LuNa82 пишет:
@mysql_connect
вы ошибки подовляете собачкой
откуда берется переменная $vote
3. LIME - 05 Октября, 2011 - 11:49:46 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo $query = "UPDATE poll_results SET voices = voices + 1 where answers ='$vote'";
morosit пишет:
вы ошибки подовляете собачкой
неважно ...предусмотрен вывод сообщения
(Добавление)
хотя собаки конечно надо поубирать
(Добавление)
LuNa82 пишет:
if (!empty($vote))
не предусмотрены действия в случае пустой переменной...в этом случае тоже выведет подтверждение
4. LuNa82 - 05 Октября, 2011 - 11:59:13 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Голосование</title>
  5. </head>
  6. <body>
  7. <b>Нравится ли Вам наш новый дизайн?</b>
  8. <form method="post" action="poll.php">
  9. <Input Type="radio" Name="vote" Value="Да">Да<br>
  10. <Input Type="radio" Name="vote" Value="Нет">Нет<br>
  11. <Input Type="radio" Name="vote" Value="Не знаю">Не знаю<br>
  12. <Input Type="submit" Value="Голосовать">
  13. </form>
  14. <a href="poll_results.php">Результаты</a>
  15. </body>
  16. </html>
  17.  

(Добавление)
LIME пишет:
не предусмотрены действия в случае пустой переменной...в этом случае тоже выведет подтверждение

Да, но это позже, главное сейчас чтоб считать начало
5. Мелкий - 05 Октября, 2011 - 12:06:50 - перейти к сообщению
LuNa82 пишет:
Да, но это позже, главное сейчас чтоб считать начало

Нет, это - главное. Потому что именно здесь, в 13 строке, и проблема ваша. Переменной $vote нет, и, согласно условию, до запроса дело и не дойдёт.
6. LIME - 05 Октября, 2011 - 12:09:21 - перейти к сообщению
везде вместо $vote - {$_POST['vote']}
или в начале присвоение $vote=$_POST['vote'];
$query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";
(Добавление)
Мелкий пишет:
Переменной $vote нет, и, согласно условию, до запроса дело и не дойдёт.
а ну да ))
7. LuNa82 - 05 Октября, 2011 - 12:45:22 - перейти к сообщению
LIME пишет:
везде вместо $vote - {$_POST['vote']}
или в начале присвоение $vote=$_POST['vote'];
$query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";


Спасибо, теперь выдаёт Ошибка доступа к базе данных. update не сработал?
8. morosit - 05 Октября, 2011 - 12:52:12 - перейти к сообщению
не много измените сообщения, что точно знать из 7 строки ошибка или из 20
9. LuNa82 - 05 Октября, 2011 - 12:57:44 - перейти к сообщению
morosit пишет:
не много измените сообщения, что точно знать из 7 строки ошибка или из 20

Из 20 строки, после проверки выполнения запроса
10. morosit - 05 Октября, 2011 - 12:59:21 - перейти к сообщению
кстати так и не понятно передается ли переменая, сделайте
PHP:
скопировать код в буфер обмена
  1. if (!empty($vote)){...}
  2. else echo "ошибка";
11. LuNa82 - 05 Октября, 2011 - 13:27:21 - перейти к сообщению
morosit пишет:
кстати так и не понятно передается ли переменая

PHP:
скопировать код в буфер обмена
  1.  
  2. if (!empty($_POST["vote"]))
  3. {
  4. $vote = addslashes($_POST['vote']);
  5. $query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";
  6. if(!($result = @mysql_query($query, $db_conn)))
  7. {
  8. echo 'Ошибка доступа к базе данных';
  9. }
  10. }
  11. else {echo 'ошибка';}


Передаётся! По прежнему только ошибка из 20 строки
12. morosit - 05 Октября, 2011 - 14:28:57 - перейти к сообщению
LuNa82 пишет:

if (!empty($_POST["vote"]))
забыли $
таблица poll_results есть в базе? где answers ='{$_POST['$vote']}'
13. LIME - 05 Октября, 2011 - 14:34:10 - перейти к сообщению
morosit сума сходим? какой $ ?
14. morosit - 05 Октября, 2011 - 14:38:14 - перейти к сообщению
LIME и правда,

LIME пишет:
сума сходим?
похоже вы опять правы

LuNa82 извините ошибся
15. LuNa82 - 06 Октября, 2011 - 10:56:16 - перейти к сообщению
Куда прописать?


Таблица существует, в ней 2 поля: answers и voices

Вывожу на экран значение переменной $query
UPDATE poll_results SET voices = voices+1 where answers ='Не знаю'

И дальше
Ошибка доступа к базе данных

Что не так? Разнесу!

 

Powered by ExBB FM 1.0 RC1