php注册页面错误 Warning: mysql_fetch_row()

<?php
if($_GET[id]){
$conn=mysql_connect('localhost','root','');
mysql_select_db('user',$conn);
$sql="SELECT * from 'user' where 'txtUserName'='$_GET[id]'";
$q=mysql_query($sql);

if(is_array(mysql_fetch_row($q))){
echo "用户名已经存在";
}else
{
echo"可以使用";
}
}
?>
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\appserv\www\pxw\for.php on line 8
请大家帮忙。
我把$sql="SELECT * from 'user' where 'txtUserName'='$_GET[id]'";
改成$sql="SELECT * from user where 'txtUserName'='$_GET[id]'";
问题一:可以验证了但是验证输出为乱码。
问题二:我又把用户名已经存在改成wrong
可以使用改成 ok
但是无论输入的值是否和数据库重复,都显示ok
恳请大家帮助解决,感谢万分。附上js核心代码
function checktxtUserName()
{

var txtUserName = document.form1.txtUserName.value;
var tip = document.getElementById("txtUserNameTip");
var imgwrong="<img src='img/wrong.gif' align='absmiddle' hspace='2'>"
if(txtUserName.length < 2 || txtUserName.length >30)
{
tip.innerHTML =" " + imgwrong + "用户名长度不能少于1个字或大于15个字";
//tip.style.color="#000000";
}
else
{
var f=document.form1.txtUserName.value;
S_xmlhttprequest();
xmlHttp.open("GET","for.php?id="+f,true);
xmlHttp.onreadystatechange = checkpage;
xmlHttp.send(null);
}
}

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\appserv\www\pxw\for.php on line 8
这是个警告 提示你mysql_fetch_row()中的参数有问题,一般常见的问题是参数是个空值得,也就是说 这里$q=mysql_query($sql); $q为空了 再往上推论得到
$sql="SELECT * from 'user' where 'txtUserName'='$_GET[id]'";执行这条SQL语句的时候没有得到结果

至于乱码问题 在执行SQL语句前边( mysql_query($sql); )加以个mysql_query("set names gb2312") 即可解决

推荐用 mysql_num_rows() 这个方法 是计算执行SQL语句返回的数据行数
如下是改后代码
<?php
if($_GET[id]){
$conn=mysql_connect('localhost','root','');
mysql_select_db('user',$conn);
$sql="SELECT * from 'user' where 'txtUserName'='$_GET[id]'";
mysql_query("set names gb2312")
$q=@mysql_query($sql);
$nos=@mysql_num_rows($q);
if( $nos>0){
echo "用户名已经存在";
}else
{
echo"可以使用";
}
}
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-13
<?php
if($_GET[id]){
$conn=mysql_connect('localhost','root','');
mysql_select_db('user',$conn);
$sql="SELECT * from `user` where txtUserName='$_GET[id]'";
$q=mysql_query($sql);

if(is_array(mysql_fetch_row($q))){
echo "用户名已经存在";
}else
{
echo"可以使用";
}
}
?>

试试这个,你是不是吧 ·写成'了??

你说的乱码问题,sql语句之前执行 SET NAMES 'GB2312' 或者你的网页的编码

另外用 mysql_num_rows 来统计记录集本回答被网友采纳
第2个回答  2010-12-14
<?php
if ($_GET['id']) {
$conn = mysql_connect('localhost', 'root','');
mysql_select_db('user', $conn);
$sql = "SELECT * from `user` where txtUserName='" . $_GET['id'] . "'";
$q = mysql_query($sql);

if (mysql_num_rows($q) > 0) {
echo "用户名已经存在";
} else {
echo"可以使用";
}
}
?>
如果你是出数据库读取出现乱码,采用:sql语句之前执行 SET NAMES 'GB2312' 或者你的网页的编码

如果你是页面上的文字出现乱码,那你查看下你的页面编码和你设置的编码是否一致,
第3个回答  2010-12-17
sql语句中单引号的错误(仅此而已):
$sql = "select * from user where txtUserName=$_GET[id] "

注意2点:
1)字段名不要加单引号.(如:txtUserName) ;表名也不要加单引号(如:user )。
2)字段值如果是字符串则必须要加单引号,如果是数字则不必。(是字段值,如:$_GET[id])

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网