ID がカンマ区切りの文字列に存在するかどうかを確認する必要があります。
私の文字列はデータベースに保存さ"1,2,3,4,10"
れます。
私が試してみました
$HiddenProducts = array($sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
機能していません。解決策をお願いします...
ID がカンマ区切りの文字列に存在するかどうかを確認する必要があります。
私の文字列はデータベースに保存さ"1,2,3,4,10"
れます。
私が試してみました
$HiddenProducts = array($sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
機能していません。解決策をお願いします...
explode()
特定の区切り文字 (この場合はコンマ) で分割することにより、文字列から文字列部分の配列を作成するために使用します。
$HiddenProducts = explode(',',$sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
in_array()
実際には必要なものですが、配列を正しく作成していません。
仮定すると$sqlvalue = '1,2,3,4,10'
...
$hiddenProducts = explode(',', $sqlvalue);
その後、使用できますin_array()
。
最初にexplode関数を使用して、コンマ区切りの文字列を配列に変換します
$HiddenProducts = explode(',',$sqlvalue);
次に、 in_array 関数を使用して確認します
if (in_array(2, $HiddenProducts))
echo "Available";
else
echo "Not available";
単に症状を治すのではなく、別のアプローチを提供させてください。
おそらく、そのようなテーブルに情報を保存するべきではありません。一部の製品が隠されているかどうかをデータベースに把握させることができるはずです。そのためには、データを適切に正規化する必要があります。
どうやら、どこかに製品のテーブルがあり、いくつかは非表示にする必要があります。これがプロパティであるtrue
かfalse
、すべての製品に属している場合は、製品テーブルに新しい列として追加できます。
SELECT id FROM products WHERE id = 2 AND hidden = 1
が製品固有のプロパティでない場合hidden
は、単に製品 ID のリストであるヘルパー テーブルを作成することもできます。
エントリは単に製品が非表示になっていることを示しています。ID がテーブルにない場合、それは隠されません。