标签为 ‘mysql_fetch_array()’
在昨天那篇《MySQL在PHP的简单应用》中,说到可以用mysql_fetch_array()来返回下一行所有的值域,然后再通过变量数组下标进行调用。
今天又google了一下,发现mysql_fetch_row()函数可以只返回某一个字段的值而不必返回整行的值,所以我们可以只查询匹配的单个字段,并将值用mysql_fetch_row()来返回。
1、$sql = “SELECT name FROM user WHERE id=$_POST[id]“; //查找与提交表单id相同的数据的姓名字段
2、执行查询并将查询结果赋给变量$result = @mysql_query($sql);
3、$segment = mysql_fetch_row($result); //返回查询结果的字段值,并赋给$segment变量
4、if($_POST[id]==”$row[id]“)
{ if($_POST[psw]==$row[psw])
{ echo “Welcome,$segment[0].”;
}
} //判断提交表单的id号是否存在于数据库中,如果存在再判断密码是否正确,如果正确,显示“Welcome 姓名”。
跟上一篇相比,只是纯粹的把mysql_fetch_array()替换成了mysql_fetch_row()函数,值得注意的是,虽然mysql_fetch_row()函数返回的是单个字段的值,但是在调用该值的时候还是需要用下标[0]来调用,否则显示的将是”Array”。
今晚瞎折腾了两个多小时,把一个巨简单的问题给复杂化了,做了许多无用功。在这里记下来,希望其他朋友如果遇到相同问题不要重蹈覆辙。
在写一个登录入口的时候,想要在登陆成功后提示登陆者者的姓名,而登录名使用的是id号,所以想到可以利用查找数据库中与id号匹配的那条记录的姓名。
1、建立数据库查询$sql = “SELECT * FROM user”;
2、执行查询并将查询结果赋给变量$result = @mysql_query($sql);
3、$row = mysql_fetch_array($result); //mysql_fetch_array()函数返回查询结果下一行的所有值域,并将其保存至$row变量中,如果没有行时,mysql_fetch_array()则返回FALSE。
4、if($_POST[id]==”$row[id]“)
{ if($_POST[psw]==$row[psw])
{ echo “Welcome,$row[name].”;
}
} //判断提交表单的id号是否存在于数据库中,如果存在再判断密码是否正确,如果正确,显示“Welcome 姓名”。
其实核心问题就在于mysql_fetch_array()这个函数,因为它保存了整一行的值域而不是单个字段的值,所以当我试图用mysql_fetch_array来返回单个字段时候,提示出错。









