2016-03-04 56 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; 
} 

?>