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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
LuNa82
Отправлено: 05 Октября, 2011 - 11:03:59
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Есть код (не мой, пытаюсь разобраться)
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 не работает. Подскажите почему?!

Ошибки на экран не выводятся...

(Отредактировано автором: 05 Октября, 2011 - 11:04:55)

 
 Top
morosit
Отправлено: 05 Октября, 2011 - 11:33:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




LuNa82 пишет:
Ошибки на экран не выводятся...

вот тут например
LuNa82 пишет:
@mysql_connect
вы ошибки подовляете собачкой
откуда берется переменная $vote
 
 Top
LIME
Отправлено: 05 Октября, 2011 - 11:49:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. echo $query = "UPDATE poll_results SET voices = voices + 1 where answers ='$vote'";
morosit пишет:
вы ошибки подовляете собачкой
неважно ...предусмотрен вывод сообщения
(Добавление)
хотя собаки конечно надо поубирать
(Добавление)
LuNa82 пишет:
if (!empty($vote))
не предусмотрены действия в случае пустой переменной...в этом случае тоже выведет подтверждение
 
 Top
LuNa82
Отправлено: 05 Октября, 2011 - 11:59:13
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




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 пишет:
не предусмотрены действия в случае пустой переменной...в этом случае тоже выведет подтверждение

Да, но это позже, главное сейчас чтоб считать начало
 
 Top
Мелкий Супермодератор
Отправлено: 05 Октября, 2011 - 12:06:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




LuNa82 пишет:
Да, но это позже, главное сейчас чтоб считать начало

Нет, это - главное. Потому что именно здесь, в 13 строке, и проблема ваша. Переменной $vote нет, и, согласно условию, до запроса дело и не дойдёт.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 05 Октября, 2011 - 12:09:21
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




везде вместо $vote - {$_POST['vote']}
или в начале присвоение $vote=$_POST['vote'];
$query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";
(Добавление)
Мелкий пишет:
Переменной $vote нет, и, согласно условию, до запроса дело и не дойдёт.
а ну да ))

(Отредактировано автором: 05 Октября, 2011 - 12:13:11)

 
 Top
LuNa82
Отправлено: 05 Октября, 2011 - 12:45:22
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




LIME пишет:
везде вместо $vote - {$_POST['vote']}
или в начале присвоение $vote=$_POST['vote'];
$query = "UPDATE poll_results SET voices = voices + 1 where answers ='{$_POST['vote']}'";


Спасибо, теперь выдаёт Ошибка доступа к базе данных. update не сработал?

(Отредактировано автором: 05 Октября, 2011 - 12:57:12)

 
 Top
morosit
Отправлено: 05 Октября, 2011 - 12:52:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




не много измените сообщения, что точно знать из 7 строки ошибка или из 20
 
 Top
LuNa82
Отправлено: 05 Октября, 2011 - 12:57:44
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




morosit пишет:
не много измените сообщения, что точно знать из 7 строки ошибка или из 20

Из 20 строки, после проверки выполнения запроса
 
 Top
morosit
Отправлено: 05 Октября, 2011 - 12:59:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




кстати так и не понятно передается ли переменая, сделайте
PHP:
скопировать код в буфер обмена
  1. if (!empty($vote)){...}
  2. else echo "ошибка";
 
 Top
LuNa82
Отправлено: 05 Октября, 2011 - 13:27:21
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




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 строки
 
 Top
morosit
Отправлено: 05 Октября, 2011 - 14:28:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




LuNa82 пишет:

if (!empty($_POST["vote"]))
забыли $
таблица poll_results есть в базе? где answers ='{$_POST['$vote']}'
 
 Top
LIME
Отправлено: 05 Октября, 2011 - 14:34:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




morosit сума сходим? какой $ ?
 
 Top
morosit
Отправлено: 05 Октября, 2011 - 14:38:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




LIME и правда,

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

LuNa82 извините ошибся
 
 Top
LuNa82
Отправлено: 06 Октября, 2011 - 10:56:16
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Куда прописать?


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

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

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

Что не так? Разнесу!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB