2013-11-11 5 views
0

ОК, поэтому у меня есть таблица с голосом с тремя столбцами (idnum, name, numvotes). Я создал радиокнопки в массиве на основе количества строк в этой таблице, все с тем же именем (имя = «предпочтение»). Мне нужно обновить поле numvotes (добавить 1) в зависимости от выбранного переключателя. Брус, кажется, чтобы получить эту работу со следующим кодом ...Команда UPDATE, основанная на выборе переключателя

<?php 
$uquery = "update voting set numvotes='". ($_POST['preference'] + 1) ."' where idnum=" .$_POST['idnum']; 
$uresults = mysql_query($uquery); 
?> 
+0

ли показывать какие-либо ошибки? Плюс не используйте 'mysql_ *', это развращает использование 'mysqli_' или' PDO' вместо –

+0

@jorgeCampos, если я добавляю или умираю (mysql_error()) Я получаю это, в противном случае нет Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_LOGICAL_OR в /path/filename.php в строке 95 – user2980334

+0

Не могли бы вы отправить 'filename.php в строке 95' содержимое строки 95, пожалуйста. –

ответ

0

Вы добавляете 1 к возвращенному значению для $ _POST [ «предпочтения»], а не +1 от значения в базе данных. Вы также устанавливаете значение как строку, а не число из-за одиночных кавычек.

Предполагая, что $ _POST [ 'предпочтения'] является текущее число голосов:

$uquery = "update voting set numvotes=". ($_POST['preference'] + 1) ." where idnum=".$_POST['idnum']; 
+0

Пожалуйста, не используйте входные переменные, такие как $ _GET или $ _POST, непосредственно в вашем запросе. Parametrize/escape it, лучший способ - использовать подготовленные инструкции, чтобы предотвратить внедрение sql. –

+0

@TobiasZander Я полностью согласен, но я просто ссылался на исходный код, но я должен был поставить предупреждение наверняка. –

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