2017-09-20 12 views
0

whileループから配列を取り出そうとするときにコードに問題があります。Whileループから配列への変換

$query = "SELECT ID,Assigned_user FROM work_orders"; 

$result = mysqli_query($connection, $query); 

while ($row = mysqli_fetch_assoc($result)) { 

    $Assigned[] = $row['Assigned_user']; 
    $ID[] = $row['ID']; 

    var_dump($ID); 

その結果を返しますvar_dump()$ID[]が、私はそれが構成されて1列である必要があり、次の

array (size=1) 
    0 => string '2' (length=1) 
D:\wamp64\www\MYCMS\Admin\test.php:31: 
array (size=2) 
    0 => string '2' (length=1) 
    1 => string '3' (length=1) 

のように見える二つの配列の中に分割されたときに問題があるが、以下のようにコードがありますArray ([0] => 2 [1] => 3)

のような二つの値の後、私は

のようにそれを爆発する必要があります誰もができれば私のデータベースからselect文

$wo_request = "SELECT * from work_orders Where ID IN ('$ID')";

に挿入するためのIN声明

で使用できるように

は、それは文字列「2,3」となりこれを行う方法について私に案内してください。本当に感謝しています。

PSこれは数百に行くの数字の全体の負荷のために働く必要があるので、私はどちらかそれをstr_splitカントので、一つの文字にそれを分割するには、 `

答えて

2

を動作しませんが、ダンプしているからですwhileループ内の配列。 var_dumpループは、その後、私は推測する

while ($row = mysqli_fetch_assoc($result)) { 

    $Assigned[] = $row['Assigned_user']; 
    $ID[] = $row['ID']; 
} //complete while loop 

    var_dump($ID); 
+0

ありがとうございました!それはちょうど私の問題を解決した –

1

を確認しながら、後にも必要です

implode(',', $ID); 

は "2,3" の文字列を取得するには、opositeを行い爆発します。

+1

私はこれを書こうとしていました:p $ wo_request = "SELECT * work_ordersからID IN(" .implode( "、"、$ ID) ")"; – Cuchu

0
while ($row = mysqli_fetch_assoc($result)) { 

    $Assigned[] = $row['Assigned_user']; 
    $ID[] = $row['ID']; 
} 

implode("','",$ID); 

$query = sprintf("SELECT * from work_orders Where ID IN ('".$ID."')"); 
0

$ID配列はだけなので、それが文字列にimplode D可能に設定されている場合は、文字列の連結を使用して同じ結果を得ることができました。

$ID = ''; // Define $ID as a blank string so it can be added to in the loop 
while ($row = mysqli_fetch_assoc($result)) { 

$Assigned[] = $row['Assigned_user']; 
$ID .= $row['ID'] . ','; // Append current ID and a comma to the ID string 
} 
rtrim($ID, ','); // Trim off the last comma 
関連する問題