0

私の SQL データベースには、複数の行の値を単一の連結文字列に変換するクエリがあります。

id    |    image_filename    |    slides    |    languages    |    types
-------------------------------------------------------------------------
10    |    filename.jpg      |    55,4     |        1         |    TN,CQ

PHP では、この画像がどのスライドに関連付けられているかを確認しようとしています。関連付けられている場合、そのチェックボックスがオンになります。

$isChecked = (strpos($slide,"5") !== false) ? " checked=\"checked\"" : "";

問題は、そこに 5 が含まれているため、上記のステートメントが true を返すことです。5 は 55 に等しくないため、falseを返す必要があります。

PHP で何かを作成して、各コンマの前の値をチェックし、指定できる特定の文字列と一致するかどうかを確認するにはどうすればよいですか。

ありがとう!

4

3 に答える 3

3

explode($slide)次に、整数に変換する必要があります

$parts = explode(',', $slide);
if(intval($parts[0]) == 55) {
    // Do stuff
}
于 2012-06-30T22:26:15.530 に答える
2

カンマで結合された実際の値を比較してください!

$isChecked = in_array("5",explode(",",$slide))!=false?" checked=\"checked\"":"";

爆発を参照してください。

編集:コンマの前の値のみを確認したいことに気付きました。これは実際には、文字列から配列を作成するよりも高速です。

$isChecked = "5"==strstr($slide,',',true)?" checked=\"checked\"":"";

PHP 5.3+ を使用していると仮定します。strstrを参照

于 2012-06-30T22:25:58.847 に答える
1

FIND_IN_SET()これを RDBMS レベルで確実に行うには、実際に MySQL 関数を使用する必要があります。この SO questionを参照してください。その答えはあなたの目標を示しています。

于 2012-06-30T22:56:54.543 に答える