2013-03-01 6 views
0

У меня есть эта функция, которая возвращает три значения при вызове.вернуть несколько значений из функции

function GetCashierDetail ($UserID){ 
     $GetCashierID = "SELECT cashiers_CashierID,cashiers_Total,cashiers_Last_Total 
     FROM `cashiers` 
     WHERE `cashiers_CashierCloseDate` is null and `cashiers_Status`='0' 
     and `cashiers_Delete` = '0' and `cashiers_User` = '".$UserID."'"; 
     $objQueryCashierID = mysql_query($GetCashierID) or die ("Error Query [".$strSQL."]"); 
     $GetCashierIDResult = mysql_fetch_array($objQueryCashierID); 
     $BillsCashierID = $GetCashierIDResult['cashiers_CashierID']; 
     $CashierTotal=$GetCashierIDResult['cashiers_Total']; 
     $CashierLastTotal=$GetCashierIDResult['cashiers_Last_Total']; 
     $num=mysql_affected_rows(); 
     // Return Data 
     return $cashier_data = array('cashierId'=>$BillsCashierID , 
          'CashierTotal'=>$CashierTotal , 
          'CashierLastTotal'=>$CashierLastTotal);      

} 

теперь, когда вызов этой функции GetCashierDetail (11) мне нужно напечатать $cashier_data на переменную, как этот

$ID = $BillsCashierID 

, чтобы использовать его по другому пути.

я постараюсь

class Bills { 
    // Get Cashier ID 
function GetCashierDetail ($ausers_ID){ 
     $GetCashierID = "SELECT cashiers_CashierID,cashiers_Total,cashiers_Last_Total 
     FROM `cashiers` 
     WHERE `cashiers_CashierCloseDate` is null and `cashiers_Status`='0' 
     and `cashiers_Delete` = '0' and `cashiers_User` = '".$UserID."'"; 
     $objQueryCashierID = mysql_query($GetCashierID) or die ("Error Query [".$strSQL."]"); 
     $GetCashierIDResult = mysql_fetch_array($objQueryCashierID); 
     $BillsCashierID = $GetCashierIDResult['cashiers_CashierID']; 
     $CashierTotal=$GetCashierIDResult['cashiers_Total']; 
     $CashierLastTotal=$GetCashierIDResult['cashiers_Last_Total']; 
     $num=mysql_affected_rows(); 
     // Return Data 
     return $cashier_data = array('cashierId'=>$BillsCashierID , 
          'CashierTotal'=>$CashierTotal , 
          'CashierLastTotal'=>$CashierLastTotal); 
} 

} 

$BillDraftSubmit = new Bills(); 
$data=$BillDraftSubmit->GetCashierDetail(71); 
$cashierId=$data["cashierId"]; 
$CashierTotal=$data["CashierTotal"]; 
$CashierLastTotal=$data["CashierLastTotal"]; 
echo "cashierId".$cashierId; 
echo "<br>CashierTotal".$CashierTotal; 
echo "<br>CashierLastTotal".$CashierLastTotal; 

, но я не могу получить результат

+0

'$ id = $ cashier_data ['cashierId']' – ficuscr

+0

, пожалуйста, подумайте о том, чтобы принять ответ (нажмите галочку слева), если он действительно ответил на ваш вопрос – michi

ответ

0

просто возвращает массив, не нужно назначать его ни к чему. т.е.

return array('cashierId'=>$BillsCashierID , 
         'CashierTotal'=>$CashierTotal , 
         'CashierLastTotal'=>$CashierLastTotal); 

или сделать

$cashier_data = array('cashierId'=>$BillsCashierID , 
         'CashierTotal'=>$CashierTotal , 
         'CashierLastTotal'=>$CashierLastTotal); 
return $cashier_data; 

тогда, когда вы возвращаете его с $cd = GetCashierDetail(1); вы можете получить доступ к $cd['CashierTotal']

+0

, но этот функционал n является функцией класса с именем Bills, как я могу получить результат –

0

Почему бы не возвращать только массив?

 function GetCashierDetail ($UserID){ 
    $GetCashierID = "SELECT cashiers_CashierID,cashiers_Total,cashiers_Last_Total 
    FROM `cashiers` 
    WHERE `cashiers_CashierCloseDate` is null and `cashiers_Status`='0' 
    and `cashiers_Delete` = '0' and `cashiers_User` = '".$UserID."'"; 
    $objQueryCashierID = mysql_query($GetCashierID) or die ("Error Query [".$strSQL."]"); 
    $GetCashierIDResult = mysql_fetch_array($objQueryCashierID); 
    $BillsCashierID = $GetCashierIDResult['cashiers_CashierID']; 
    $CashierTotal=$GetCashierIDResult['cashiers_Total']; 
    $CashierLastTotal=$GetCashierIDResult['cashiers_Last_Total']; 
    $num=mysql_affected_rows(); 
    // Return Data 
    return array('cashierId'=>$BillsCashierID , 
         'CashierTotal'=>$CashierTotal , 
         'CashierLastTotal'=>$CashierLastTotal);      

} 

$user = GetCashierDetail($id); 
$ID = $user['cashierId']; 
echo $ID; 
0
//$UserID - your user's id 
$result = GetCashierDetail ($UserID); 
//now just using as normal array, for example 
echo $result['cashierId']; 
+0

, но эта функция является функцией класса с именем Bills, как я могу получить результат, я пробую этот $ BillDraftSubmit = new Bills; $ BillDraftSubmit-> GetCashierDetail (71); –

2

Как насчет:

$arr = GetCashierDetail (11); 
extract($arr); 
print $cashierId." ".$CashierTotal." ".$CashierLastTotal; 
+0

Не основное решение: P +1 – Sam

+0

@Sam: Я считаю, что он тесно связан с моей зависимостью от Wordpress, где он используется очень часто;) –

+0

Лучшая защита для использования 'list ($ cashierId, $ CashierTotal, $ CashierLastTotal) = GetCashierDetail (11) ; ' – webbiedave

0

Если я понял ваш вопрос правильно, вы хотите отобразить значение Кассовый ID.

Вы можете сделать это так ..

$cashierData = GetCashierDetail(11); 

$ID = $cashierData['cashierId']; 

echo 'cashier ID is: ' . $ID; 

Точно так же вы можете также получить CashierTotal по $cashierData['CashierTotal'] и так далее

0

Я не уверен, если я потрошить вас прямо ...

list($id,,) = GetCashierDetail(11); 

echo $id; 
+1

Эти запятые являются излишними. – webbiedave

+0

@webbiedave право, спасибо – michi

Смежные вопросы