2015-06-20 60 views
1

我編寫一個簡單的代碼來生成EAN8代碼並檢查數據庫中是否存在記錄。當我使用只是代碼它的工作完美,但是當我嘗試改變它的功能,我只有空白頁。 此代碼工作相同的代碼不起作用。 (生成EAN8)

do{ 
$number = rand(1,9999999); 
$number = str_pad($number, 7, 0, STR_PAD_LEFT); 

$sum = ($number[0] * 3) +($number[1] * 1) + ($number[2] * 3) + ($number[3] * 1) + ($number[4] * 3) + ($number[5] * 1) + ($number[6] * 3); 
$control = 10 - ($sum%10); 
$ean8 = $number.$control; 



     $ean8 = substr($ean8, 0,8); 
     $db->where('numberCard',$ean8); 
     $user = $db->getOne('user'); 

} 
while($db->count !== 0); 

echo $ean8; 

與此相同的代碼過去函數返回空白頁

function generateEan(){ 
do{ 
    $number = rand(1,9999999); 
    $number = str_pad($number, 7, 0, STR_PAD_LEFT); 

    $sum = ($number[0] * 3) +($number[1] * 1) + ($number[2] * 3) + ($number[3] * 1) + ($number[4] * 3) + ($number[5] * 1) + ($number[6] * 3); 
    $control = 10 - ($sum%10); 
    $ean8 = $number.$control; 



      $ean8 = substr($ean8, 0,8); 
      $db->where('numberCard',$ean8); 
      $user = $db->getOne('user'); 

    } 
while($db->count !== 0); 

return $ean8; 
} 

echo generateEan(); 

問題出在哪裏?我犯了什麼錯誤?請幫幫我,祝你有個美好的夜晚

回答

0

裏面的generateEan函數的範圍,是否存在$ db?

也許你可以做一個簡單的功能,並測試它是否存在

+0

哦,天啊,謝謝。我忘了添加全局$ db;在功能的頂部。真的非常感謝!有一個愉快的夜晚 – user1364495

+0

不客氣。也許可以通過參數傳遞$ db,比使用全局更受推薦 – Guillermo