0

FileTABLEの列を更新する必要がありますTEST。この列には、行に関連するファイルが含まれます。各ファイルは|.

例は次のとおりです。

ID    NAME    FILE
 1    apple   fruit.png | lemon.png

列に新しいファイルを追加するときに、次のFILEクエリを使用します。

$link->query("UPDATE TEST SET File = CONCAT(File, '$dbfilename') WHERE id = '$p_id'")

たとえば、どこにいる$dbfilenameことができますかpineapple.jpg |

問題は、$dbfilenameが既にFile値にある場合、もう一度追加され、2 倍になることです。

File含まれているかどうかを確認するにはどうすれば$dbfilenameよいですか? はいの場合は、id を追加しないか、クエリを実行しないでください。

4

3 に答える 3

1

FILEIDの を選択する必要があります。

次に、explode を使用して配列に分割します

次に、in_array の使用をチェックして、追加する必要があるかどうかを判断します

ガイダンス用の(テストされていない)コードを次に示します

$stmt = $link->query("SELECT File File from TEST WHERE id = '$p_id'");
$rec = $stmt->fetchAssoc();
$files = explode(" | ",$rec["FILE"]);
if (!in_array($dbfilename, $files)){
    // add to FILE
} else {
    // it's already there
}
于 2013-05-22T22:50:52.453 に答える