這是一個建立個人倉庫的程式,單獨測試沒問題
打算在使用者個人中心載入的時候直接運行,
程式啟動並執行時候很成功,但是每次重新整理介面的時候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列印出來看看。
感謝大家問題解決了