Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\20xuan\voteadd.php on line 14 你$voters不是数组;得加上 $voters = array();Warning: implode() [function.implode]: Bad arguments. in C:\wamp\www\20xuan\voteadd.php on line 15 这个函数是把数组用待定符号连起来;$voteid=implode(',',$voters);多看手册,连函数也不会用!哎。
Warning: implode() [function.implode]: Bad arguments. in C:\wamp\www\20xuan\voteadd.php on line 15 这个函数是把数组用待定符号连起来;$voteid=implode(',',$voters); -------------- 做点小小的更正,implode是把数组中的元素按自定义的符号连接起来,而不是在连数组。 原型如下:string implode ( string $glue , array $pieces ) Join array elements with a glue string. 例:<?php$array = array('lastname', 'email', 'phone'); $comma_separated = implode(",", $array);echo $comma_separated; ?> 结果为: lastname,email,phone
数据库表 CREATE TABLE `user` ( `uid` int(10) unsigned NOT NULL auto_increment, `username` varchar(20) NOT NULL, `teln` varchar(20) NOT NULL, `telw` varchar(20) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`uid`)) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=13 ;CREATE TABLE `vote` ( `id` int(10) unsigned NOT NULL, `votename` varchar(100) NOT NULL, `votenum` int(10) NOT NULL, `voters` text NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=gb2312;voters 就是投这个项票的用户ID所组成的数组
把$voters和$votesid打印出来看看是什么类型不就行了么。。自己要会调试啊
<? $dbh=mysql_connect('localhost','root','123456'); $db=mysql_select_db("test",$dbh) ; //先插入用户表 $sql="insert into user(username,teln,telw,email) values('$username','$teln','$telw','$email')" ; $result=mysql_query($sql) ; //取得用户uid $sqlvoters=mysql_query("SELECT * from user where username='$username' and teln='$teln' and email='$email' ") ; $row=mysql_fetch_array($sqlvoters) ; //把用户uid插入$voters这个数组\ $voters=array(); array_push($voters,$row['uid']) ; $voteid=implode(',',$voters); print_r($voters); $sql1="UPDATE vote set votenum=votenum+1 ,voters='$voters' where id IN($voteid)" ; $result1=mysql_query($sql1) ;?>
你$voters不是数组;得加上 $voters = array();Warning: implode() [function.implode]: Bad arguments. in C:\wamp\www\20xuan\voteadd.php on line 15
这个函数是把数组用待定符号连起来;$voteid=implode(',',$voters);多看手册,连函数也不会用!哎。
这个函数是把数组用待定符号连起来;$voteid=implode(',',$voters); --------------
做点小小的更正,implode是把数组中的元素按自定义的符号连接起来,而不是在连数组。
原型如下:string implode ( string $glue , array $pieces )
Join array elements with a glue string.
例:<?php$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);echo $comma_separated;
?>
结果为: lastname,email,phone
CREATE TABLE `user`
( `uid` int(10) unsigned NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`teln` varchar(20) NOT NULL,
`telw` varchar(20) NOT NULL,
`email` varchar(100) NOT NULL, PRIMARY KEY (`uid`)) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=13 ;CREATE TABLE `vote`
( `id` int(10) unsigned NOT NULL,
`votename` varchar(100) NOT NULL,
`votenum` int(10) NOT NULL,
`voters` text NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=gb2312;voters 就是投这个项票的用户ID所组成的数组
$dbh=mysql_connect('localhost','root','123456');
$db=mysql_select_db("test",$dbh) ;
//先插入用户表
$sql="insert into user(username,teln,telw,email) values('$username','$teln','$telw','$email')" ;
$result=mysql_query($sql) ;
//取得用户uid
$sqlvoters=mysql_query("SELECT * from user where username='$username' and teln='$teln' and email='$email' ") ;
$row=mysql_fetch_array($sqlvoters) ;
//把用户uid插入$voters这个数组\
$voters=array();
array_push($voters,$row['uid']) ;
$voteid=implode(',',$voters);
print_r($voters);
$sql1="UPDATE vote set votenum=votenum+1 ,voters='$voters' where id IN($voteid)" ;
$result1=mysql_query($sql1) ;?>