Ecco un semplice script in PHP per creare una pagina di prenotazioni per un ristorante. Questo script include un modulo HTML per raccogliere i dati della prenotazione e un codice PHP per gestire e salvare le prenotazioni in un database MySQL.
1. Configurazione del Database
Prima di tutto, devi configurare il tuo database MySQL. Ecco i passaggi:
- Apri phpMyAdmin.
- Crea un nuovo database chiamato ristorante.
- Crea una tabella chiamata prenotazioni con i seguenti campi:
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
telefono VARCHAR(15) NOT NULL,
DATA DATE NOT NULL,
ora TIME NOT NULL,
persone INT(3) NOT NULL,
messaggio TEXT
);
2. Creazione del Modulo di Prenotazione
Crea un file chiamato prenotazione.php e aggiungi il seguente codice:
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prenotazione Ristorante</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f8f8f8;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
form {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
max-width: 400px;
width: 100%;
}
input, textarea {
width: 100%;
padding: 10px;
margin: 10px 0;
border: 1px solid #ccc;
border-radius: 4px;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<form action="prenotazione.php" method="post">
<h2>Prenota un Tavolo</h2>
<label for="nome">Nome:</label>
<input type="text" id="nome" name="nome" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="telefono">Telefono:</label>
<input type="text" id="telefono" name="telefono" required>
<label for="data">Data:</label>
<input type="date" id="data" name="data" required>
<label for="ora">Ora:</label>
<input type="time" id="ora" name="ora" required>
<label for="persone">Numero di Persone:</label>
<input type="number" id="persone" name="persone" required>
<label for="messaggio">Messaggio:</label>
<textarea id="messaggio" name="messaggio"></textarea>
<button type="submit">Invia Prenotazione</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ristorante";
// Crea la connessione
$conn = new mysqli($servername, $username, $password, $dbname);
// Controlla la connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefono = $_POST["telefono"];
$data = $_POST["data"];
$ora = $_POST["ora"];
$persone = $_POST["persone"];
$messaggio = $_POST["messaggio"];
$sql = "INSERT INTO prenotazioni (nome, email, telefono, data, ora, persone, messaggio)
VALUES ('$nome', '$email', '$telefono', '$data', '$ora', '$persone', '$messaggio')";
if ($conn->query($sql) === TRUE) {
echo "<p>Prenotazione completata con successo!</p>";
} else {
echo "Errore: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
</body>
</html>
Spiegazione del Codice
- HTML: Il modulo HTML consente agli utenti di inserire i loro dettagli di prenotazione, tra cui nome, email, telefono, data, ora, numero di persone e un messaggio opzionale.
- PHP: Il codice PHP in cima al file gestisce l’invio del modulo. Quando il modulo viene inviato (metodo POST), i dati vengono raccolti e inseriti nel database MySQL.
3. Visualizzazione delle Prenotazioni
Puoi creare una pagina separata per visualizzare tutte le prenotazioni ricevute. Crea un file chiamato visualizza_prenotazioni.php e aggiungi il seguente codice:
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Visualizza Prenotazioni</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f8f8f8;
margin: 0;
padding: 20px;
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 12px;
border: 1px solid #ddd;
text-align: left;
}
th {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<h2>Elenco Prenotazioni</h2>
<table>
<tr>
<th>ID</th>
<th>Nome</th>
<th>Email</th>
<th>Telefono</th>
<th>Data</th>
<th>Ora</th>
<th>Persone</th>
<th>Messaggio</th>
</tr>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ristorante";
// Crea la connessione
$conn = new mysqli($servername, $username, $password, $dbname);
// Controlla la connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
$sql = "SELECT * FROM prenotazioni";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["id"]. "</td><td>" . $row["nome"]. "</td><td>" . $row["email"]. "</td><td>" . $row["telefono"]. "</td><td>" . $row["data"]. "</td><td>" . $row["ora"]. "</td><td>" . $row["persone"]. "</td><td>" . $row["messaggio"]. "</td></tr>";
}
} else {
echo "<tr><td colspan='8'>Nessuna prenotazione trovata</td></tr>";
}
$conn->close();
?>
</table>
</body>
</html>
Con questi semplici passaggi, hai creato una pagina di prenotazioni per il tuo ristorante utilizzando PHP e MySQL. Questo script consente agli utenti di prenotare un tavolo e memorizzare le informazioni nel database, mentre tu puoi visualizzare tutte le prenotazioni ricevute. Sentiti libero di personalizzare ulteriormente il modulo e le funzionalità in base alle esigenze del tuo ristorante.