Maison >développement back-end >tutoriel php >各位大神帮忙看一下这个是什么情况!

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

WBOY
WBOYoriginal
2016-06-20 12:28:56907parcourir

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

感谢大家问题解决了

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn