2017-09-16 8 views
-1

SQL文で配列を使用していて、エラーが発生しています。
「ファイル名と行番号の名前」の文字列変換への配列。
これは私のコードです。「配列から文字列への変換エラー」を生成するSqlクエリ

$temp=array(2,3,4,9); 
    for($i=4; $i>=0; $i--) { 

    $query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ('$temp')"); 
    if ($query1) { 
     echo '<br> hello'.$i; 
    } 
} 

私はまた、上記のコードでは、この

$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ('$temp[$i]')"); 

代わりの

$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ('$temp')"); 

を試してみました。

+0

これは出発点です( '$ temp') –

+2

これは '$ temp'が配列ではないためです。 – Nima

+0

@Nimaそれでは解決するには – pyrogrammer

答えて

3

あなたがSELECT * FROM user WHERE u_id IN (2,3,4,9)を取得したい場合は、同じようにコードを調整し、コマで区切られた文字列にimplode(',', $temp)

をあなたの配列をキャスト:あなたは、ループ内のクエリを実行

$tmp = [2, 3, 4, 9]; 
$usersStr = implode(',', $tmp); 
... 
$query1 = $mysqli->query("SELECT * FROM user WHERE u_id IN ($usersStr)"); 
+0

いいえ、まだ動作していません – pyrogrammer

+0

実際のPHPコードを表示する必要があります。演算子が文字列補間構文が間違っていると確信しています – Steve

+0

@pyrogrammerが更新されました –

1

。そして配列を送信しますが、文字列でなければなりません。

$temp=array(2,3,4,9); 

// Convert to string 
$str = implode(',', $temp); 

for($i=4;$i>=0;$i--){ 

$query1=$mysqli->query("SELECT * FROM user WHERE u_id IN (".$str.")"); 

if($query1->num_rows){ 
    echo '<br> hello'.$i; 
} 
} 
関連する問題