欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

各位大神帮忙看一下这个是什么情况!

程序员文章站 2022-06-09 19:36:35
...
这是一个创建个人仓库的程序,单独测试没问题
打算在用户个人中心加载的时候直接运行,
程序运行的时候很成功,但是每次刷新界面的时候if语句中的程序又执行了

function _order_given(){
$uid = $this->checked_login();
$sql1="select uid from order_given where uid='$uid'";
$usergiven=$this->App->find($sql1);
//判断当前用户id在个人仓库表中是否存在
$row = mysql_num_rows($usergiven);
if($row==0) //表中不存在用户id创建个人仓库数据
{
$sqlg1="insert into order_given(goods_sn,pifa_price,is_on_sale,is_jifen) select goods_sn,pifa_price,is_on_sale,is_jifen from gz_goods";
$sqlg2="UPDATE order_given SET uid='$uid' WHERE uid='0'";
$this->App->query($sqlg1);
$this->App->query($sqlg2);

}
}


回复讨论(解决方案)

给自己张沙发,坐等大神路过!

既然 单独测试没问题,那么就是联合环境出了问题
你不去到其他地方找原因,只揪住这个函数不放,是什么道理?

你在sql语句后边加上
echo $sql1; exit; //有时候要查看的内容不是字符串,用print_r($xxx);
运行看看,sql对不对,可能是check用户没拿到正确的uid。
测试程序哪里出了问题可以用这个方法,看看打印的内容和预期的有什么差别

这条语句:
int mysql_num_rows ( resource $result )
括号中的参数是资源句柄
$usergiven=$this->App->find($sql1); 这条语句返回的是resource类型吗?
最好把完整的 类,类中的app,还有find 程序发出来。

如果刷新插入多一条记录。
问题应该是在这里
$sql1="select uid from order_given where uid='$uid'";
$usergiven=$this->App->find($sql1);
//判断当前用户id在个人仓库表中是否存在
$row = mysql_num_rows($usergiven);
if($row==0) //表中不存在用户id创建个人仓库数据

把$uid,$sql1,$row打印出来看看。

感谢大家问题解决了