大家好我的Php代码加1表投票....而evey成员曾投票......
我的代码
while($rows=mysql_fetch_array($result)){
<div id="poll">
<form action="poll_vote.php" method="post" >
<? echo $rows['id']; ?>
<input type="radio" name="vote" value="1" ><? echo $rows['name']; ?>
<input value="<? echo $rows['id']; ?>" type="radio" select="yas"name="id"/>
<input value="0" type="hidden" name="list_n" />
</div>
}
--- poll_vote.php ---
if ( isset($_REQUEST['vote']) && ($_REQUEST['id'])){
$a = $_REQUEST['vote'];
$id = $_REQUEST['id'] ;
$res= mysql_query("SELECT * FROM table WHERE id ='$id'"); }
if ( isset($_REQUEST['vote']) && ($_REQUEST['id'])){
$list_n = $_REQUEST['list_n'];
$_REQUEST['vote'] = $a;
$id = $_REQUEST['id'] ;
$sql = "UPDATE tabel SET $list_n='$a' WHERE id='$id' ";
$res =mysql_query($sql) or die ("خطااا".mysql_error()); }
if(isset($_REQUEST['vote']) && ($_REQUEST['id'])){
echo "<script type='text/javascript'>alert('ok')</script>";
}
出现的错误是 SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在&#39; 0 =&#39; 1&#39; 0附近使用正确的语法。在哪里id =&#39; 7&#39;&#39;在第1行
答案 0 :(得分:2)
您正在使用变量作为列名。
您的变量$list_n
为0,$a
为1,因此在您的查询中,$list_n='$a'
变为0='1'
。然后将0解释为列名,这是无效的
而不是查询中的$list_n
,而是使用您为该列命名的任何内容。 (也许你只需要list_n
,而没有$
?)
一些不相关的建议:缩进代码。你的代码很难阅读,因为一切都是从一行的开头开始的,这使得代码很容易迷失。
而不是像
if ($foo == 'bar') {
if (baz()) {
do_stuff();
}
}
考虑写作
if ($foo == 'bar') {
if (baz()) {
do_stuff();
}
}