这是一个创建个人仓库的程序,单独测试没问题
打算在用户个人中心加载的时候直接运行,
程序运行的时候很成功,但是每次刷新界面的时候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打印出来看看。
感谢大家问题解决了