多个条件判断 怎么跳到另一个条件了

good__girl 2004-11-24 07:48:28
$username=$_POST['username'];
$password=$_POST['password'];
$sql="select * from user where user='".$username."'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query)) {
if($row["password"]==$password)
{
echo "用户已注册";
return false;
die();

}
else
{
echo "用户名存在";
}
}
else
{
echo "成功";
}


上边代码运行正确,但在“用户名存在”这个条件中写入更新语句(更新语句如下),如果“用户已注册”的话还会执行这个更新条件,不知道怎么回事?

$sql="select min(id) from user where statu='0'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query)) {
$id =$row["min(id)"];
$sql = "update user set user='".$username."',password='".$password."',statu='1' where id='".$id."'";
$query = $db->query($sql);
}

...全文
456 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamesxdltwo 2004-11-27
  • 打赏
  • 举报
回复
number min ( number arg1, number arg2 [, ...])
number min ( array numbers)
你的用法好象是第二个.参数错了~~~
jamesxdltwo 2004-11-27
  • 打赏
  • 举报
回复
$id =$row["min(id)"];
你这里的min()是不是数据库里面的集函数哦~~~
如果是的话,我认为$id就默认为0了.
就会更新id=0的记录.
个人愚见,
不要见笑^__^
xuzuning 2004-11-26
  • 打赏
  • 举报
回复
不知道你在说什么。难道有“用户已注册”输出时还会执行更新吗?
jxflll 2004-11-26
  • 打赏
  • 举报
回复
你的if else 结构不对呀。
good__girl 2004-11-26
  • 打赏
  • 举报
回复
gun_hzic 那样也不对,和我的结果一样,只能验证第一条,不循环的,应该怎么循环呢
flyonet 2004-11-26
  • 打赏
  • 举报
回复
你确认你得PASSWARD传过来了吗?

ice_berg16(寻梦的稻草人)
有啊,这不就听说了吗!
ice_berg16 2004-11-26
  • 打赏
  • 举报
回复
头一次听说用户名可以重复,密码不能重复的
fzxml 2004-11-26
  • 打赏
  • 举报
回复
楼主很特别呀
xuzuning 2004-11-26
  • 打赏
  • 举报
回复
if ($row = $db->fetch_array($query)) {
if($row["password"]==$password) {
echo "用户已注册";
return false;
die();
}else {

改作
while($row = $db->fetch_array($query)) {
if($row["password"]==$password) {
echo "用户已注册";
return false;
die();
}
}
gun_hzic 2004-11-26
  • 打赏
  • 举报
回复
这样子看看,不知道有没有错!
<?php
$username=$_POST['username'];
$password=$_POST['password'];
$sql="select * from user where user='".$username."'";
$query = $db->query($sql);
$row=$db->fetch_array($query);
$a=mysql_num_rows($query);
$i=0;
if($a!=0){
while($row){
if($row["password"]!=$password)
{
$i++;
}
else
echo "用户已经注册";
exit;

}
if($a==$i){
//add()
}
}
else
{
//add()

}

?>
good__girl 2004-11-26
  • 打赏
  • 举报
回复
我表中有这么两条记录:
用户名:abc 密码:111
用户名:abc 密码:222
输入的如果是"abc 111"结果就是“用户已注册”,输入的是“abc 222”结果就是“用户名存在”(还会再加入一条"abc 222"这样的记录
good__girl 2004-11-26
  • 打赏
  • 举报
回复
对,用户已注册(用户名和密码都相同),输出还会更新(这里的更新其实就是添加,因为还有个状态判断条件)。主要是我这段代码验证时只验证了第一个符合条件的记录,后边的就执行不下去了,不知道怎么循环.......
leyan728 2004-11-25
  • 打赏
  • 举报
回复
$username=$_POST['username'];
$password=$_POST['password'];
$sql="select * from user where user='".$username."'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query)) {
if($row["password"]==$password)
{
echo "用户已注册";
return false;
die();
}
else
{
$sql="select min(id) from user where statu='0'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query)) {
$id =$row["min(id)"];
$sql = "update user set user='".$username."',password='".$password."',statu='1' where id='".$id."'";
$query = $db->query($sql);
echo "用户名存在";
}
else
{
echo "成功";
}
}
}

楼主的if层次用的很是问题!看了很半天!
yms741 2004-11-25
  • 打赏
  • 举报
回复
允许用户名相同可不是个好主意阿。你可以使用不同的用户名, 允许使用相同的别名阿
wxq4100798 2004-11-25
  • 打赏
  • 举报
回复
晕,那就直接用$sql="select * from user where user='$username' and password='$password'";就$res = $db->query($sql);
$num_rows = $db->num_rows($res);
if($num_rows>0)
{
echo "用户已存在";
}
else
{
add();
}
gun_hzic 2004-11-25
  • 打赏
  • 举报
回复
<?php
$username=$_POST['username'];
$password=$_POST['password'];
$sql="select * from user where user='".$username."'";
$query = $db->query($sql);
$row=$db->fetch_array($query);
$a=mysql_num_rows($query);
if($a!=0){

if($row["password"]==$password)
{
echo "用户已注册";
exit;
}
else
{
//add
}
}
else
{
//add

}

?>

这样不太好,如果有很多相同的用户名,不能这样写了
good__girl 2004-11-25
  • 打赏
  • 举报
回复
是这样的,用户注册。用户名可以重复,密码不能重复,也就是用户可以有相同的用户名但密码不能相同。这样就有三种情况:
1、用户名相同 密码相同(用户已注册)
2、用户名相同 密码不同(用户名存在,可以添加用户)
3、用户名不同 密码不同(成功,添加用户)
我这个注册判断是想实现这个功能

gun_hzic 2004-11-25
  • 打赏
  • 举报
回复
另外如果在if后执行后不想执行下面的代码就应该exit
gun_hzic 2004-11-25
  • 打赏
  • 举报
回复
if($row["password"]==$password)
{
echo "用户已注册";
return false;
die();

}
为什么密码一样就说明已经注册?
good__girl 2004-11-25
  • 打赏
  • 举报
回复
改成这样还是不对
加载更多回复(2)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧