2016-03-04 59 views
1

所以,我有我的代碼Msqli查詢陣列

function GetApi($connection,$UserId){ 
     global $Apicall; 
     $Apicall = array(); 
     $Apiidquery = mysqli_query($connection, "SELECT ID FROM ` Characterapi` WHERE UserId = '$UserId'"); 
     while($results = mysqli_fetch_assoc($Apiidquery)){ 
      $Apicall[] = $results['ID']; 
     } 
} 

該函數的輸出,如果我打電話 $ Apicall [0] = 3 $ Apicall [1] = 11 ,這是我想要的信息。但現在我想要使用像

function Keyquery($Apicall,$connection){ 
    global $keyidcall, $keyid ,$Vcode; 
    $Keyidquery = array(); 
    $Keyidquery = mysqli_query($connection, "SELECT keyid, Vcode FROM `Characterapi` WHERE ID = '$Apicall'"); 
    $results = mysqli_fetch_object($Keyidquery); 
    $keyid = $results->keyid; 
    $Vcode = $results->Vcode; 
} 

此代碼確實運行,如果我設置$ Apicall =「3」;我的問題是,我想讓第一個函數獲取與我的數據庫中的$ userId相關的所有ID,然後爲每個Id運行第二個函數以從該查詢中獲取兩條特定信息。

+2

循環'$ Apicall'並調用每個值的'Keyquery()'?儘管如此,在一個查詢中檢索所需的所有信息然後循環結果 - 例如'SELECT ... WHERE ID IN(「。implode(',',$ Apicall)。」) ' –

回答

0

針對下面的評論,這是我將使用的解決方案。 但是你應該警惕使用這種方法,因爲它沒有參數化值,因此沒有被消毒。

<?php 

    function Keyquery($Apicall,$connection){ 
    global $keyidcall, $keyid ,$Vcode; 

    $string = "ID IN('"; 
    $string.= implode("','", $Apicall); 
    $string.="')"; 

    $Keyidquery = mysqli_query($connection, "SELECT keyid, Vcode FROM `Characterapi` WHERE ".$string.";"); 
    $results = mysqli_fetch_object($Keyidquery); 
    $keyid = $results->keyid; 
    $Vcode = $results->Vcode; 
} 

?>