0

大きなサイズのキャンディーが好きな人にメールを送りたいとしましょう。

私がこれを行うとき:

$query1 = mysql_query("SELECT id_candy FROM `candylist` WHERE
candysize > 100") or die(mysql_error());

$result = mysql_fetch_array( $query1 );

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE
candysizeinterest IN ($result)
") or die(mysql_error());

もちろん、このquery2が問題です。

$result は使用する適切な形式ではないため、次の明らかなエラーが発生します。

**Unknown column 'Array' in 'where clause'**

クエリの結果を次のようにフォーマットするには、助けが必要です。

($val1, $val2, $val3....and so on) 

その後、INステートメントに使用できるようになります。

しかし、私はそうする方法がわかりません。

4

4 に答える 4

2

試す

$array = array();
while($result = mysql_fetch_array( $query1 ))
{
   $array[] = $result['id_candy'];
}

次に内破を使用します

$in_condition  = implode(',', $array);

やっと

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($in_condition)

: PDO または mysqli_* に切り替えてください

于 2013-04-15T16:43:52.327 に答える
1

$query2実際の値の代わりに配列を配置するというシンタックスに誤りがあります

変化する

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($result)

$query2 = mysql_query("SELECT `mail` FROM `buyers` WHERE `candysizeinterest` IN ('".$result['id_candy']."')");


mysql_また、関数は非推奨であることを覚えておきたいので、新しいプロジェクトに切り替えるmysqliPDO、新しいプロジェクトに切り替えることをお勧めします。

于 2013-04-15T16:36:42.803 に答える
0

を使用implode()して、配列をコンマ区切りの文字列に変換できます。

implode(',',$result);

INでそれを使用できます

于 2013-04-15T16:38:38.563 に答える
0

配列をカンマ区切りの文字列に変換するには、次を使用します

implode (",",$array)
于 2013-04-15T16:40:11.600 に答える