PHPを使用して食品注文システムの予約注文機能を開発するにはどうすればよいですか?

WBOY
リリース: 2023-11-01 12:50:01
オリジナル
919 人が閲覧しました

PHPを使用して食品注文システムの予約注文機能を開発するにはどうすればよいですか?

ケータリング業界の発展に伴い、ますます多くのレストランが予約注文サービスを提供し始めています。これにより、顧客により便利な食事体験を提供するだけでなく、レストランに優れたサービスを提供することもできます。より秩序正しく効率的な管理方法。この記事では、PHPを使用して料理注文システムの予約注文機能を開発する方法を紹介します。

1. 予約・発注機能の基本構造

予約・発注機能の基本構造は、予約システムと発注システムの 2 つの主要な部分で構成されます。予約システムは主にテーブル予約や顧客情報管理などの顧客の予約情報の管理を担当し、発注システムは主に顧客の注文業務や料理管理などを担当します。

2. 予約システムの実装

  1. データベース設計

データベース テーブルの作成: 予約、顧客、テーブル

① 予約テーブル

id: 自己増加主キー

customer_id: 外部キー、顧客テーブルの id フィールドに関連付けられます

table_id: 外部キー、顧客テーブルの id フィールドに関連付けられますテーブル table

reservation_time: 予約時間

status: 予約ステータス、0 は未使用を意味し、1 は使用済みを意味します

② customer table

id: self - 主キーの増加

name: 顧客の名前

phone: 顧客の携帯電話番号

email: 顧客の電子メール アドレス

③table table

id: 自動インクリメント主キー

table_number:テーブル番号

table_name:テーブル名

capacity:テーブル容量

  1. 予約関数の実装

予約内 システムでは、テーブル予約やテーブル状態問い合わせなどの機能を実装する必要があります。

(1) テーブルの予約

ここでは新規予約を例に挙げていますが、予約を行う前に、まずテーブルが予約されているかどうかを確認し、予約が成功したかどうかを判断する必要があります。そして対応する情報を返します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$reservation_time = $_POST['reservation_time'];
$customer_name = $_POST['customer_name'];
$ customer_phone = $_POST['customer_phone'];
$table_id = $_POST['table_id'];

$sql_check = "SELECT * FROM 予約 WHERE table_id='$table_id' ANDreservation_time='$ reservation_time'";
$result_check = mysqli_query($conn, $sql_check);

if (mysqli_num_rows($result_check) > 0) {
echo 'テーブルは現時点で予約されています、別の時間を選択してください。 ';
} else {
$sql_customer = "顧客 (名前、電話番号) の値に挿入 ('$customer_name', '$customer_phone')";
mysqli_query($conn, $sql_customer);
$customer_id = mysqli_insert_id($conn);
$sql_reservation = "予約 (customer_id、table_id、reservation_time、status) VALUES ('$customer_id', '$table_id', '$reservation_time', 0) に挿入します" ;
mysqli_query($conn, $sql_reservation);
echo '予約が成功しました。 ';
}

mysqli_close($conn);
?>

(2) テーブルのステータスをクエリする

次の方法でテーブルのステータスをクエリできます。予約テーブルのクエリ これを実現するには、0 は未使用を意味し、1 は使用済みを意味します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$table_id = $_POST['table_id'];
$reservation_time = $_POST['reservation_time'];

$sql_check = "SELECT * FROM 予約 WHERE table_id='$table_id' ANDreservation_time='$reservation_time'";
$result_check = mysqli_query($conn, $sql_check);

if (mysqli_num_rows) ($result_check) > 0) {
$row = mysqli_fetch_assoc($result_check);
$status = $row['status'];
if ($status == 0) {

echo '该餐桌未被预约。';
ログイン後にコピー

} else {

echo '该餐桌已被预约。';
ログイン後にコピー

}
} else {
echo 'テーブルは予約されていません。 ';
}

mysqli_close($conn);
?>

3. 注文システムの実装

注文システムでは、必要なメニュー管理、注文管理、決済などの機能を実現します。

  1. データベース設計

データベーステーブルの作成:dish、order

①dish table

id:自己増加主キー

dish_name: 料理名

price: 料理の価格

description: 料理の説明

image: 料理の写真

② 注文表

id: 自己増加主キー

customer_id: 外部キー、顧客テーブルの ID フィールドに関連付けられます

table_id: 外部キー、テーブルの ID フィールドに関連付けられますtable

dish_info: 注文の詳細

status: 注文ステータス、0 は未完了を意味し、1 は完了を意味します

order_time: 注文時間

total_price: 注文合計価格

    ##料理管理
  1. ##料理管理には、料理の追加、変更、削除などの操作が含まれます。

(1) 新規追加料理

新規追加料理の一例です。

$conn = mysqli_connect("localhost", "root", "root", "test_db");

if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$dish_name = $_POST['dish_name'];

$price = $_POST['price'];

$ description = $_POST['description'];
$image = $_POST['image'];

$sql = "料理 (料理名、価格、説明、画像) に挿入 値 ('$料理名', $価格, '$説明', '$画像')";

if (mysqli_query($conn, $sql)) {
echo "ディッシュが正常に追加されました。";
} else {
echo "エラー: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

(2) 料理の変更

料理の価格を変更する例を示します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$id = $_POST['id'];
$price = $_POST['price'];

$sql = "皿のSET価格=$price WHERE id=$idを更新";

if (mysqli_query($conn, $sql)) {
echo "皿は正常に変更されました。" ;
} else {
echo "エラー: " .mysqli_error($conn);
}

mysqli_close($conn);
?>

(3 )ディッシュの削除

ディッシュを削除する例を示します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$id = $_POST['id'];

$sql = "DELETE FROM dish WHERE id=$id ";

if (mysqli_query($conn, $sql)) {
echo "ディッシュは正常に削除されました。";
} else {
echo "エラー: " . mysqli_error( $conn );
}

mysqli_close($conn);
?>

  1. 注文管理

注文管理には、注文の追加、変更、削除などの操作。

(1) 新規注文

ここでは新規注文を例に挙げます。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$table_id = $_POST['table_id'];
$customer_id = $_POST['customer_id'];
$料理情報 = $_POST['料理情報'];
$合計価格 = $_POST['合計価格'];

$sql = "INSERT INTO order (customer_id、table_id、dish_info、 status, order_time, total_price) VALUES ('$customer_id', '$table_id', '$dish_info', 0, now(), $total_price)";

if (mysqli_query($conn, $sql) ) {
echo "注文は正常に追加されました。";
} else {
echo "エラー: " .mysqli_error($conn);
}

mysqli_close($conn );
?>

(2) 注文変更

注文ステータスを変更する例を示します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$id = $_POST['id'];
$status = $_POST['status'];

$sql = "UPDATE order SET status=$status WHERE id=$id";

if (mysqli_query($conn, $sql)) {
echo "注文変更は成功しました。";
} else {
echo "エラー: " .mysqli_error($conn);
}

mysqli_close($conn);
?>

(3) オーダーの削除

オーダーを削除する例を示します。

$conn = mysqli_connect("localhost", "root", "root", "test_db");
if (!$conn) {
die( "接続に失敗しました: " .mysqli_connect_error());
}

$id = $_POST['id'];

$sql = "order## から削除# WHERE id=$id";

if (mysqli_query($conn, $sql)) {

echo "注文は正常に削除されました。";
} else {
echo "エラー: " .mysqli_error($conn);
}

mysqli_close($conn);

?>

4. 概要

予約注文関数導入には予約システムと発注システムを組み合わせる必要があり、予約システムは主に顧客の予約情報の管理を担当し、発注システムは主に顧客の注文業務や料理管理などを担当します。 PHP開発では、データベースの設計とPHPの関連機能を利用することでこれらの機能を実現することができますが、予約・注文機能をより充実させるためには、データのセキュリティやユーザーエクスペリエンスにも配慮する必要があります。

以上がPHPを使用して食品注文システムの予約注文機能を開発するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート