Μάθημα 7: HTML Φόρμες με PHP & MySQL

Διαδικτυακός Προγραμματισμός - Τμήμα Ψηφιακών Συστημάτων

📝Τι είναι μια HTML Φόρμα;

Μια HTML φόρμα είναι το κομμάτι μιας ιστοσελίδας που επιτρέπει στον χρήστη να εισάγει δεδομένα (π.χ. όνομα, email, σχόλια, επιλογές) και να τα στείλει (submit) για επεξεργασία — συνήθως σε ένα PHP ή server-side αρχείο.

Σημαντικό: Οι φόρμες είναι το βασικό μέσο επικοινωνίας μεταξύ του χρήστη και του διακομιστή. Χρησιμοποιούνται για εγγραφές, συνδέσεις, αναζητήσεις, παραγγελίες, επικοινωνία και πολλά άλλα.

🔹1. Το στοιχείο <form>

Η φόρμα ξεκινά και τελειώνει με το στοιχείο <form>:

<form action="process.php" method="post"> <!-- εδώ μπαίνουν τα πεδία --> </form>

👉 Βασικά γνωρίσματα του <form>

🔹2. Τα στοιχεία εισαγωγής

Αυτά είναι τα "κουτάκια", "κουμπιά" και "πεδία" όπου γράφει ή επιλέγει ο χρήστης.

✅ α. Text Input (Πεδίο Κειμένου)

<input type="text" name="username" placeholder="Όνομα χρήστη">

Παράδειγμα:

✅ β. Email

<input type="email" name="user_email" required>

Παράδειγμα:

✅ γ. Number (Αριθμός)

<input type="number" name="age" min="1" max="120">

Παράδειγμα:

✅ δ. Password (Κωδικός)

<input type="password" name="user_password" required>

Παράδειγμα:

✅ ε. Checkbox (Τετραγωνάκι επιλογής)

<input type="checkbox" name="subscribe" value="yes"> Εγγραφή στο newsletter

Παράδειγμα:

Εγγραφή στο newsletter

✅ στ. Radio Buttons (Κουμπιά επιλογής)

<input type="radio" name="gender" value="male"> Άνδρας <input type="radio" name="gender" value="female"> Γυναίκα

Παράδειγμα:

Άνδρας
Γυναίκα

✅ ζ. Drop-down (Λίστα επιλογών - select)

<select name="product"> <option value="1">Προϊόν 1</option> <option value="2">Προϊόν 2</option> </select>

Παράδειγμα:

✅ η. Textarea (Πολλές γραμμές κειμένου)

<textarea name="comments" rows="4" cols="30"></textarea>

Παράδειγμα:

🔹3. Το στοιχείο <label>

Τι είναι το <label> στην HTML;

Το στοιχείο <label> χρησιμοποιείται για να περιγράφει ή να "ονοματίζει" ένα στοιχείο φόρμας, όπως input, textarea, select κ.λπ.

Δηλαδή, λέει στον χρήστη τι πρέπει να συμπληρώσει και συνδέεται με το αντίστοιχο πεδίο.

🎯 Γιατί χρησιμοποιούμε <label>;

1️⃣ Βελτίωση προσβασιμότητας

Το label βοηθά:

ώστε να καταλαβαίνουν τι αφορά κάθε πεδίο.

2️⃣ Μεγαλύτερη ευκολία χρήσης

Αν το label συνδεθεί με το πεδίο, τότε:

Π.χ. κλικ στο «Άνδρας» → επιλέγεται το radio button.

3️⃣ Καλύτερη δομή κώδικα

Η φόρμα γίνεται πιο καθαρή, οργανωμένη και επαγγελματική.

🔗 Πώς συνδέουμε ένα <label> με ένα <input>;

Υπάρχουν δύο τρόποι:

✔ Τρόπος 1: Με το for και το id (ο πιο συχνός)

<label for="email">Email:</label> <input type="email" id="email" name="email">

Παράδειγμα:

💡 Δοκιμάστε να πατήσετε πάνω στο κείμενο "Email:" - το πεδίο θα ενεργοποιηθεί!

✔ Τρόπος 2: Τυλίγοντας το input μέσα στο label

<label> Email: <input type="email" name="email"> </label>

Και αυτό λειτουργεί, αλλά χρησιμοποιείται πιο σπάνια.

🔹4. Κουμπί Υποβολής

<button type="submit">Αποστολή</button>

📋Πίνακας Τύπων Input

Τύπος Περιγραφή Παράδειγμα
text Απλό πεδίο κειμένου <input type="text" name="firstname">
email Πεδίο email με έλεγχο <input type="email" name="email">
password Πεδίο κωδικού (κρυφοί χαρακτήρες) <input type="password" name="pwd">
number Αριθμητικό πεδίο <input type="number" name="age">
checkbox Τετραγωνάκι επιλογής <input type="checkbox" name="agree">
radio Κύκλος επιλογής <input type="radio" name="gender">
date Επιλογή ημερομηνίας <input type="date" name="birthdate">
file Επιλογή αρχείου <input type="file" name="upload">
submit Κουμπί υποβολής <input type="submit" value="Αποστολή">
reset Κουμπί επαναφοράς <input type="reset" value="Καθαρισμός">

💻Πλήρες Παράδειγμα Φόρμας

Παρακάτω βλέπουμε μια πλήρη φόρμα εγγραφής που συνδυάζει όλα τα παραπάνω στοιχεία:

<!DOCTYPE html> <html lang="el"> <head> <meta charset="UTF-8"> <title>Φόρμα Εγγραφής</title> </head> <body> <h1>Φόρμα Εγγραφής</h1> <form action="register.php" method="post"> Ονοματεπώνυμο: <input type="text" name="fullname" required> <br><br> Email: <input type="email" name="email" required> <br><br> Κωδικός: <input type="password" name="password" required> <br><br> Ηλικία: <input type="number" name="age" min="18" max="100"> <br><br> Φύλο: <input type="radio" name="gender" value="male"> Άνδρας <input type="radio" name="gender" value="female"> Γυναίκα <br><br> Χώρα: <select name="country"> <option value="greece">Ελλάδα</option> <option value="cyprus">Κύπρος</option> <option value="other">Άλλο</option> </select> <br><br> Σχόλια: <textarea name="comments" rows="4" cols="50"></textarea> <br><br> <input type="checkbox" name="terms" required> Αποδέχομαι τους όρους χρήσης <br><br> <button type="submit">Εγγραφή</button> <button type="reset">Καθαρισμός</button> </form> </body> </html>

💻Πλήρες Παράδειγμα Φόρμας ΜΕ <label>

Το ίδιο παράδειγμα, αλλά τώρα με χρήση <label> για καλύτερη προσβασιμότητα:

<!DOCTYPE html> <html lang="el"> <head> <meta charset="UTF-8"> <title>Φόρμα Εγγραφής με Labels</title> </head> <body> <h1>Φόρμα Εγγραφής</h1> <form action="register.php" method="post"> <label for="fullname">Ονοματεπώνυμο:</label> <input type="text" id="fullname" name="fullname" required> <br><br> <label for="email">Email:</label> <input type="email" id="email" name="email" required> <br><br> <label for="password">Κωδικός:</label> <input type="password" id="password" name="password" required> <br><br> <label for="age">Ηλικία:</label> <input type="number" id="age" name="age" min="18" max="100"> <br><br> <label>Φύλο:</label><br> <input type="radio" id="male" name="gender" value="male"> <label for="male">Άνδρας</label> <input type="radio" id="female" name="gender" value="female"> <label for="female">Γυναίκα</label> <br><br> <label for="country">Χώρα:</label> <select id="country" name="country"> <option value="greece">Ελλάδα</option> <option value="cyprus">Κύπρος</option> <option value="other">Άλλο</option> </select> <br><br> <label for="comments">Σχόλια:</label> <textarea id="comments" name="comments" rows="4" cols="50"></textarea> <br><br> <input type="checkbox" id="terms" name="terms" required> <label for="terms">Αποδέχομαι τους όρους χρήσης</label> <br><br> <button type="submit">Εγγραφή</button> <button type="reset">Καθαρισμός</button> </form> </body> </html>
💡 Σύγκριση:

⚙️Χρήσιμα Attributes για Φόρμες

Attribute Περιγραφή Παράδειγμα
required Το πεδίο είναι υποχρεωτικό <input type="text" required>
placeholder Βοηθητικό κείμενο μέσα στο πεδίο <input placeholder="Όνομα">
value Προεπιλεγμένη τιμή <input value="Μαρία">
disabled Απενεργοποιεί το πεδίο <input disabled>
readonly Μόνο για ανάγνωση <input readonly>
maxlength Μέγιστος αριθμός χαρακτήρων <input maxlength="10">
min / max Ελάχιστη/Μέγιστη τιμή για αριθμούς <input type="number" min="1" max="100">
pattern Regular expression για έλεγχο <input pattern="[0-9]{5}">

🎯Σημαντικές Παρατηρήσεις

  1. Το attribute name είναι απαραίτητο - Χωρίς το name, τα δεδομένα δεν στέλνονται.
  2. GET vs POST:
    • GET: Τα δεδομένα φαίνονται στο URL. Καλό για αναζητήσεις.
    • POST: Τα δεδομένα δεν φαίνονται. Καλό για κωδικούς, προσωπικά δεδομένα.
  3. Χρήση του label: Βελτιώνει την προσβασιμότητα και τη χρηστικότητα. Το for του label πρέπει να ταιριάζει με το id του input.
  4. Required attribute: Ο browser ελέγχει αν το πεδίο είναι συμπληρωμένο πριν την αποστολή.
  5. Validation: Τα HTML5 input types (email, number, date) προσφέρουν αυτόματο έλεγχο.
🔍 Πώς λειτουργεί η ανάγνωση δεδομένων με SELECT:

📝 1. Δημιουργούμε το SQL ερώτημα

$sql = "SELECT * FROM products WHERE id = $product_id";

Εδώ φτιάχνεις ένα κείμενο (string) που λέει στη βάση: "Βρες όλα τα πεδία από τον πίνακα products όπου το id είναι ίσο με $product_id."

🔌 2. Εκτελείς το ερώτημα

$result = $conn->query($sql);

Λέμε στη βάση δεδομένων: "Τρέξε το ερώτημα αυτό" και ό,τι απάντηση δώσει η βάση, μπαίνει στο $result.

📊 3. Ελέγχεις αν βρέθηκε προϊόν

if ($result->num_rows > 0) {

Το $result δεν είναι πίνακας — είναι αντικείμενο ειδικού τύπου (mysqli_result). Η ιδιότητα num_rows λέει πόσες γραμμές βρήκε η βάση.

📥 4. Παίρνεις τα δεδομένα της γραμμής

$row = $result->fetch_assoc();

Η μέθοδος fetch_assoc() παίρνει μια γραμμή από το αποτέλεσμα και σου τη δίνει σε μορφή ενός πίνακα (array) με κλειδιά τα ονόματα των πεδίων.

Δηλαδή το $row γίνεται κάτι σαν:

[ "name" => "Keyboard", "price" => 25.90, "description" => "USB keyboard" ]

📦 5. Παίρνεις τα επιμέρους πεδία

$product_name = $row["name"]; $product_price = $row["price"];

Απλά "τραβάς" τις τιμές από τον πίνακα $row χρησιμοποιώντας τα ονόματα των στηλών.

✔️ Με πολύ σύντομα λόγια:

💾 Πώς λειτουργεί η εισαγωγή δεδομένων με INSERT:

📝 1. Δημιουργείς τον πελάτη στη βάση

$sql_customer = "INSERT INTO customers (name, email) VALUES ('$customer_name', '$customer_email')";

Αυτό το SQL σημαίνει: "Βάλε έναν νέο πελάτη στον πίνακα customers με αυτά τα στοιχεία (name, email)"

🚀 2. Εκτελείς το INSERT

if ($conn->query($sql_customer) === TRUE) {

Εντολή INSERT: Αν επιστρέψει TRUE, σημαίνει: "Η εγγραφή μπήκε με επιτυχία!"

🆔 3. Παίρνεις το id του νέου πελάτη

$customer_id = $conn->insert_id;

Κάθε φορά που κάνεις ένα INSERT και η βάση δημιουργεί ένα αυτόματο id (AUTO_INCREMENT), η mysqli σου δίνει αυτό το id μέσω της ιδιότητας insert_id.

Δηλαδή σου λέει: "Το id του πελάτη που μόλις έβαλες είναι αυτό εδώ."

Παράδειγμα: Αν το νέο id είναι 27 → $customer_id θα γίνει 27.

✔️ Με πολύ απλά λόγια:

🔗Επεξεργασία Φόρμας με PHP και Αποθήκευση στη Βάση

Μέχρι τώρα είδαμε πώς φτιάχνουμε φόρμες στην HTML. Τώρα θα δούμε πώς επεξεργαζόμαστε τα δεδομένα με PHP και τα αποθηκεύουμε σε μια βάση δεδομένων MySQL.

📋 Βήμα 1: Δημιουργία Πίνακα στη Βάση

Πρώτα πρέπει να δημιουργήσουμε έναν πίνακα στη βάση δεδομένων. Άνοιξε το phpMyAdmin και εκτέλεσε το παρακάτω SQL:

-- Δημιουργία πίνακα για παραγγελίες CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, customer_name VARCHAR(100) NOT NULL, customer_email VARCHAR(100) NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, is_member ENUM('yes', 'no') DEFAULT 'no', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

📝 Βήμα 2: Η HTML Φόρμα

Δημιουργούμε μια φόρμα που στέλνει τα δεδομένα στο αρχείο process_order.php:

<!-- order_form.html --> <!DOCTYPE html> <html lang="el"> <head> <meta charset="UTF-8"> <title>Φόρμα Παραγγελίας</title> </head> <body> <h1>Φόρμα Παραγγελίας</h1> <form action="process_order.php" method="post"> Ονοματεπώνυμο: <input type="text" name="customer_name" required> <br><br> Email: <input type="email" name="customer_email" required> <br><br> Προϊόν: <select name="product_id" required> <option value="1">Laptop</option> <option value="2">Smartphone</option> <option value="3">Tablet</option> </select> <br><br> Ποσότητα: <input type="number" name="quantity" min="1" required> <br><br> <input type="checkbox" name="is_member" value="yes"> Είμαι μέλος <br><br> <button type="submit">Αποστολή Παραγγελίας</button> </form> </body> </html>

⚙️ Βήμα 3: Το PHP Script (process_order.php)

Τώρα δημιουργούμε το PHP αρχείο που θα δέχεται τα δεδομένα και θα τα αποθηκεύει στη βάση:

<?php // process_order.php // Σύνδεση με τη βάση $servername = "localhost"; $username = "root"; $password = ""; $dbname = "my_database"; // Δημιουργία σύνδεσης στη MySQL $conn = new mysqli($servername, $username, $password, $dbname); // Έλεγχος αν η σύνδεση απέτυχε if ($conn->connect_error) { die("Αποτυχία σύνδεσης: " . $conn->connect_error); } // Λήψη δεδομένων από τη φόρμα $customer_name = $_POST['customer_name']; $customer_email = $_POST['customer_email']; $product_id = $_POST['product_id']; $quantity = $_POST['quantity']; // Checkbox: αν δεν υπάρχει στο POST → θεωρείται "no" $is_member = isset($_POST['is_member']) ? 'yes' : 'no'; // Δημιουργία SQL query εισαγωγής (κατασκευή εντολής INSERT) $sql = "INSERT INTO orders (customer_name, customer_email, product_id, quantity, is_member) VALUES ('$customer_name', '$customer_email', '$product_id', '$quantity', '$is_member')"; // Εκτέλεση του query (=== TRUE για να ελέγχουμε ακριβή τιμή TRUE) if ($conn->query($sql) === TRUE) { echo "<h2>Επιτυχής Καταχώρηση!</h2>"; echo "<p>Η παραγγελία σας καταχωρήθηκε με επιτυχία.</p>"; echo "<p>ID Παραγγελίας: " . $conn->insert_id . "</p>"; } else { // Μήνυμα σφάλματος αν το query δεν εκτελέστηκε echo "Σφάλμα: " . $sql . "<br>" . $conn->error; } // Κλείσιμο σύνδεσης $conn->close(); ?>

📊 Βήμα 4: Η Σχέση μεταξύ Φόρμας - PHP - Βάσης Δεδομένων

HTML Form (name) PHP ($_POST) SQL (Στήλη Βάσης) Τύπος
name="customer_name" $_POST['customer_name'] customer_name VARCHAR(100)
name="customer_email" $_POST['customer_email'] customer_email VARCHAR(100)
name="product_id" $_POST['product_id'] product_id INT
name="quantity" $_POST['quantity'] quantity INT
name="is_member" $_POST['is_member'] is_member ENUM('yes','no')
✅ Κανόνες που πρέπει να θυμάστε:
  1. Το name στη φόρμα πρέπει να ταιριάζει με το κλειδί στο $_POST['...']
  2. Το όνομα στήλης στη βάση πρέπει να ταιριάζει με το όνομα στην SQL εντολή INSERT
  3. Για checkbox: Χρησιμοποιούμε isset() γιατί αν δεν είναι τσεκαρισμένο, δεν στέλνεται καθόλου
  4. Έλεγχος method="post": Μπορείτε να ελέγξετε αν τα δεδομένα στάλθηκαν με POST:
    if ($_SERVER["REQUEST_METHOD"] == "POST") { ... }

🔍Ανάγνωση Δεδομένων από τη Βάση (SELECT)

Εκτός από την εισαγωγή δεδομένων (INSERT), χρειάζεται συχνά να διαβάσουμε δεδομένα από τη βάση. Για αυτό χρησιμοποιούμε το SELECT.

📋 Βήμα 5: PHP Script για Ανάγνωση (view_all_orders.php)

Το παρακάτω script διαβάζει όλες τις παραγγελίες από τον πίνακα orders και τις εμφανίζει σε πίνακα HTML:

<?php // view_all_orders.php // Σύνδεση με τη βάση $servername = "localhost"; $username = "root"; $password = ""; $dbname = "my_database"; // Δημιουργία σύνδεσης $conn = new mysqli($servername, $username, $password, $dbname); // Έλεγχος σύνδεσης if ($conn->connect_error) { die("Αποτυχία σύνδεσης: " . $conn->connect_error); } // SQL query για ανάγνωση όλων των εγγραφών $sql = "SELECT * FROM orders"; // Εκτέλεση του query $result = $conn->query($sql); // Έλεγχος αν υπάρχουν αποτελέσματα if ($result->num_rows > 0) { // Εμφάνιση αποτελεσμάτων σε πίνακα HTML echo "<h2>Όλες οι Παραγγελίες</h2>"; echo "<table border='1'>"; echo "<tr>"; echo "<th>ID</th>"; echo "<th>Όνομα</th>"; echo "<th>Email</th>"; echo "<th>Προϊόν ID</th>"; echo "<th>Ποσότητα</th>"; echo "<th>Μέλος</th>"; echo "</tr>"; // Επανάληψη για κάθε εγγραφή // Result-fetching method: fetch_assoc() φέρνει μία γραμμή σαν associative array while ($row = $result->fetch_assoc()) { echo "<tr>"; echo "<td>" . $row["id"] . "</td>"; echo "<td>" . $row["customer_name"] . "</td>"; echo "<td>" . $row["customer_email"] . "</td>"; echo "<td>" . $row["product_id"] . "</td>"; echo "<td>" . $row["quantity"] . "</td>"; echo "<td>" . $row["is_member"] . "</td>"; echo "</tr>"; } echo "</table>"; } else { echo "Δεν βρέθηκαν παραγγελίες."; } // Κλείσιμο σύνδεσης $conn->close(); ?>
📖 Λεπτομερής Επεξήγηση του view_all_orders.php:

📝 Πλήρες Παράδειγμα Κώδικα

<?php // ---------------- Σύνδεση με τη βάση (όπως στο process_order.php) ---------------- $servername = "localhost"; $username = "root"; $password = "123456"; $database = "eshop"; $conn = new mysqli($servername, $username, $password, $database); // Έλεγχος σύνδεσης if ($conn->connect_error) { die("Αποτυχία σύνδεσης: " . $conn->connect_error); } // ---------------- ΒΗΜΑ 1: SELECT όλων των παραγγελιών ---------------- // ORDER BY id DESC: οι πιο πρόσφατες (με μεγαλύτερο id) πρώτες $sql = "SELECT * FROM orders ORDER BY id DESC"; $result = $conn->query($sql); // ---------------- ΒΗΜΑ 2: Εμφάνιση σε πίνακα HTML ---------------- if ($result->num_rows > 0) { echo '<table>'; echo '<thead> <tr> <th>ID Παραγγελίας</th> <th>ID Πελάτη</th> <th>ID Προϊόντος</th> <th>Ποσότητα</th> <th>Τελικό Ποσό</th> </tr> </thead> <tbody>'; // Loop: παίρνουμε κάθε γραμμή ως associative array while ($row = $result->fetch_assoc()) { // number_format(..., 2): 2 δεκαδικά $fmt_total = number_format($row["total_price"], 2); // Εκτύπωση σειράς πίνακα για την τρέχουσα παραγγελία echo '<tr>'; echo ' <td>' . $row["id"] . '</td>'; echo ' <td>' . $row["customer_id"] . '</td>'; echo ' <td>' . $row["product_id"] . '</td>'; echo ' <td>' . $row["quantity"] . '</td>'; echo ' <td>' . $fmt_total . ' €</td>'; echo '</tr>'; } echo '</tbody></table>'; } else { echo "<p>Δεν υπάρχουν παραγγελίες προς εμφάνιση.</p>"; } $conn->close(); ?>

📌 Βήμα 1 — Εκτέλεση SELECT

$sql = "SELECT * FROM orders ORDER BY id DESC";

📌 Βήμα 2 — Εμφάνιση αποτελεσμάτων σε HTML πίνακα

Έλεγχος αν υπάρχουν αποτελέσματα:

if ($result->num_rows > 0) {

Δημιουργία κεφαλίδας πίνακα:

echo '<table>'; echo '<thead> <tr> <th>ID Παραγγελίας</th> <th>ID Πελάτη</th> <th>ID Προϊόντος</th> <th>Ποσότητα</th> <th>Τελικό Ποσό</th> </tr> </thead> <tbody>';

🔄 Επανάληψη για κάθε γραμμή αποτελέσματος:

while ($row = $result->fetch_assoc()) {

Τι κάνει αυτή η γραμμή:

Μορφοποίηση και εμφάνιση των δεδομένων:

$fmt_total = number_format($row["total_price"], 2);
echo '<tr>'; echo ' <td>' . $row["id"] . '</td>'; echo ' <td>' . $row["customer_id"] . '</td>'; echo ' <td>' . $row["product_id"] . '</td>'; echo ' <td>' . $row["quantity"] . '</td>'; echo ' <td>' . $fmt_total . ' €</td>'; echo '</tr>';

Κλείσιμο πίνακα:

echo '</tbody></table>';

Αν δεν υπάρχουν παραγγελίες:

} else { echo "<p>Δεν υπάρχουν παραγγελίες προς εμφάνιση.</p>"; }

🔎 Βήμα 6: SELECT με Συνθήκη (WHERE)

Μπορούμε να φιλτράρουμε τα αποτελέσματα χρησιμοποιώντας WHERE. Για παράδειγμα, να βρούμε μόνο τα μέλη:

<?php // Σύνδεση με τη βάση (όπως πριν) $conn = new mysqli("localhost", "root", "", "my_database"); // SELECT με συνθήκη - μόνο μέλη $sql = "SELECT * FROM orders WHERE is_member = 'yes'"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "<h3>Παραγγελίες από Μέλη (" . $result->num_rows . ")</h3>"; while ($row = $result->fetch_assoc()) { echo "Όνομα: " . $row["customer_name"] . " - Email: " . $row["customer_email"] . "<br>"; } } else { echo "Δεν βρέθηκαν παραγγελίες από μέλη."; } $conn->close(); ?>

📊 Βήμα 7: SELECT με Ταξινόμηση (ORDER BY)

Μπορούμε να ταξινομήσουμε τα αποτελέσματα:

// Ταξινόμηση από τη νεότερη προς την παλαιότερη παραγγελία $sql = "SELECT * FROM orders ORDER BY id DESC"; // Ταξινόμηση αλφαβητικά κατά όνομα $sql = "SELECT * FROM orders ORDER BY customer_name ASC";
💡 Χρήσιμα για SELECT:

🎯 Βήμα 8: Συνδυασμός SELECT - INSERT - UPDATE

Στις πραγματικές εφαρμογές, συνδυάζουμε διάφορες εντολές SQL:

<?php // Παράδειγμα: Βρες πόσες παραγγελίες έχει κάνει ο χρήστης $email = "[email protected]"; $sql = "SELECT COUNT(*) as total FROM orders WHERE customer_email = '$email'"; $result = $conn->query($sql); $row = $result->fetch_assoc(); echo "Ο χρήστης έχει κάνει " . $row['total'] . " παραγγελίες."; ?>

📚Σύνοψη

Οι HTML φόρμες είναι το βασικό εργαλείο για την επικοινωνία μεταξύ χρήστη και διακομιστή. Τα κύρια σημεία που πρέπει να θυμάστε είναι:

Για την επεξεργασία με PHP:

🎓 Τι μάθαμε: Σε αυτό το μάθημα μάθαμε πώς να δημιουργούμε HTML φόρμες, πώς να επεξεργαζόμαστε τα δεδομένα με PHP και πώς να τα αποθηκεύουμε στη βάση με INSERT και να τα διαβάζουμε με SELECT!

Γιώργος Μπάρδης

Πανεπιστήμιο Πελοποννήσου - Τμήμα Ψηφιακών Συστημάτων