新手系列之六:请大家帮我看下这个if语句哪里出了问题???

yaccor 2006-07-27 04:58:54
<?
//省略连接语句
$name=$_POST["g_name"];
if($name!=="")
{
$str="select * from t_goods where name='$name' and f_check='1'";
$result=mysql_query($str);
$row=mysql_fetch_row($result);
if ($row[0]!='')
{
$query= "insert into t_games(Category,gamesname,Content,Features) values('$category','$name','$content','$feature')";
mysql_query($query);
echo("<script type='text/javascript'> alert('添加成功!');location.href='addgames.php';</script>");
mysql_close();
exit;
}
else
{
echo ("<script type='text/javascript'> alert('名称有重复,添加失败!');history.go(-1);</script>");
}
}
else
{
echo ("<script type='text/javascript'> alert('填写资料不完整!');history.go(-1);</script>");
}

?>

运行没问题,但条件判断没起作用,输任意名称都可以添加成功,错在哪呢??请指点
...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stefenjun 2006-07-27
  • 打赏
  • 举报
回复
if($name!=="")

要判断是否为空直接写成
if($name=="")
就行了

if ($row[0]!='')这也错了
写的时候细心点
xuzuning 2006-07-27
  • 打赏
  • 举报
回复
1、
$name=$_POST["g_name"];
if($name!=="")
应为
$name=$_POST["g_name"];
if(! empty($name))

至少应为
$name=$_POST["g_name"];
if($name!="")

注意当没有提交或$_POST["g_name"]不存在的时候
$name的类型为NULL
这是如果用!==去判断,则表达式依然成立,因为类型不相同

2、
$str="select * from t_goods where name='$name' and f_check='1'";
$result=mysql_query($str);
$row=mysql_fetch_row($result);
if ($row[0]!='')

应为
....
if (empty($row[0]))

if(mysql_num_rows($result) == 0)

理由:
$str="select * from t_goods where name='$name' and f_check='1'";
是为了检查用户$name是否已存在,当$row[0]!=''时,表示有查询结果。也就是用户已存在


yaccor 2006-07-27
  • 打赏
  • 举报
回复
不行的啊,我是要判断如果添加时输入的名称与数据库里的货品名称是否有重复
blue2004 2006-07-27
  • 打赏
  • 举报
回复
你又没有对名称做限制,当然可以添加任意名称了!
如果说的是 名称为空就不能插入的话,那改
$name=$_POST["g_name"]; => $name=(string)$_POST["g_name"];
试试!
qishiwobuguai 2006-07-27
  • 打赏
  • 举报
回复
if ($row[0]!='')

21,887

社区成员

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

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