12

ID がカンマ区切りの文字列に存在するかどうかを確認する必要があります。

私の文字列はデータベースに保存さ"1,2,3,4,10"れます。

私が試してみました

$HiddenProducts = array($sqlvalue);

if (in_array(2, $HiddenProducts)) {
  echo "Available";
} else {
  echo "Not available";
}

機能していません。解決策をお願いします...

4

4 に答える 4

45

explode()特定の区切り文字 (この場合はコンマ) で分割することにより、文字列から文字列部分の配列を作成するために使用します。

$HiddenProducts = explode(',',$sqlvalue);
if (in_array(2, $HiddenProducts)) {
  echo "Available";
} else {
  echo "Not available";
}
于 2012-11-24T07:08:07.337 に答える
3

in_array()実際には必要なものですが、配列を正しく作成していません。

仮定すると$sqlvalue = '1,2,3,4,10'...

$hiddenProducts = explode(',', $sqlvalue);

その後、使用できますin_array()

于 2012-11-24T07:08:27.540 に答える
1

最初にexplode関数を使用して、コンマ区切りの文字列を配列に変換します

$HiddenProducts = explode(',',$sqlvalue);

次に、 in_array 関数を使用して確認します

 if (in_array(2, $HiddenProducts))
   echo "Available";
else
   echo "Not available";
于 2012-11-24T08:25:20.803 に答える
1

単に症状を治すのではなく、別のアプローチを提供させてください。

おそらく、そのようなテーブルに情報を保存するべきではありません。一部の製品が隠されているかどうかをデータベースに把握させることができるはずです。そのためには、データを適切に正規化する必要があります。

どうやら、どこかに製品のテーブルがあり、いくつかは非表示にする必要があります。これがプロパティであるtruefalse、すべての製品に属している場合は、製品テーブルに新しい列として追加できます。

SELECT id FROM products WHERE id = 2 AND hidden = 1

が製品固有のプロパティでない場合hiddenは、単に製品 ID のリストであるヘルパー テーブルを作成することもできます。

エントリは単に製品が非表示になっていることを示しています。ID がテーブルにない場合、それは隠されません。

于 2012-11-24T12:30:02.423 に答える