次のコードを使用して、MySQL テーブルからデータを選択しています。少し面倒なように見えるので、誰かがこれを改善する方法を教えてもらえますか?
また、UPDATE ステートメントを実行して、顧客がデータベースから照会されるたびに「views」列の値をインクリメントする必要があります。データベースの各顧客行には、「ビュー」という名前の列があります。たとえば、ABC Corp が 100 回のビューを持っているとします。ABC Corp を検索してデータベースからレコードが返された場合、このレコードの "views" 列は 101 に更新されます。これを行う最善の方法は何ですか?
if ($search && ($group && $group !== "*")) {
$sql = "SELECT * FROM customers WHERE description LIKE :description AND groupId LIKE :groupId";
$result = $conn->prepare($sql);
$result->bindValue(":description", "%" . $search . "%", PDO::PARAM_STR);
$result->bindValue(":groupId", $groupId, PDO::PARAM_INT);
} else if ($search) {
$sql = "SELECT * FROM customers WHERE description LIKE :description";
$result = $conn->prepare($sql);
$result->bindValue(":description", "%" . $search . "%", PDO::PARAM_STR);
} else if ($group !== "*") {
$sql = "SELECT * FROM customers WHERE groupId LIKE :groupId";
$result = $conn->prepare($sql);
$result->bindValue(":groupId", $groupId, PDO::PARAM_INT);
} else {
$sql = "SELECT * FROM customers";
$result = $conn->prepare($sql);
}