PHP και MySQL
Σε αυτό το πολύ αναλυτικό βοήθημα, από τον Νίκο Χατζηδάκη, θα δούμε πως μπορούμε να χρησιμοποιήσουμε την PHP και να γράψουμε κώδικα και εντολές, ώστε να συνδεθούμε με μία βάση δεδομένων, να προσθέσουμε εγγραφές, να επεξεργαστούμε εγγραφές, και τέλος πως να αφαιρέσουμε και να προβάλουμε τις εγγραφές της.
Σύνδεση με βάση δεδομένων
Δημιουργούμε ένα αρχείο dbconn.php με τον παρακάτω κώδικα
<?php
function dbconnect() {
// Σύνδεση με διακομιστή
$db_connect = mysql_connect("localhost", "db_user", "db_password")
or die ("Αποτυχία σύνδεσης στον διακομιστή");
// Αν χρησιμοποιείτε κωδικοποίηση utf8 και δεν σας εμφανίζει σωστά τα
ελληνικά
// mysql_query("SET NAMES 'utf8'", $db_connect);
// Επιλογή βάσης δεδομένων
$db_select = mysql_select_db("db_name", $db_connect)
or die ("Αποτυχία επιλογής βάσης δεδομένων");
}
?>
Με το παρακάτω, συνδεόμαστε στην mysql
mysql_connect("localhost", "db_user", "db_password")
Μην ξεχάσετε να αντικαταστήσετε τα localhost ο host της βάσης db_user το όνομα του χρήστη της βάσης db_password ο κωδικός του χρήστη της βάσης db_name το όνομα της βάσης. or die (“Αποτυχία σύνδεσης στον διακομιστή”); Αν για κάποιο λόγο παρουσιαστεί πρόβλημα, εμφανίζεται το μήνυμα “Αποτυχία σύνδεσης στον διακομιστή”. Κάποιες φορές, όταν η βάση είναι κωδικοποιημένη σε utf8, τα ελληνικά γράμματα εμφανίζονται με ερωτηματικά. Για να το διορθώσουμε, εισάγουμε το παρακάτω:
mysql_query("SET NAMES 'utf8'", $db_connect);
Τέλος επιλέγουμε το όνομα της βάσης
$db_select = mysql_select_db("db_name", $db_connect)
Διευκολύνει να έχουμε την παραπάνω συνάρτηση σε ξεχωριστό αρχείο, και όποτε τη χρειαζόμαστε να το εισάγουμε. Έτσι, αν θέλουμε να αλλάξουμε για παράδειγμα τον κωδικό ή τον χρήστη, το κάνουμε σε ένα αρχείο. Για να εισάγουμε το αρχείο της συνάρτησης σε ένα άλλο αρχείο php χρησιμοποιούμε την εντολή include() ως εξής:
<?php // Εισαγωγή του αρχείου με την συνάρτηση include(“dbconn.php”); // Καλούμε την συνάρτηση dbconnect();
ΕΝΤΟΛΕΣ
// Αποσύνδεση απο τον διακομιστή /mysql_close($db_connect); ?>
Αν και δεν είναι απαραίτητο να κάνουμε αποσύνδεση, καλό θα ήταν να μην το ξεχνάμε.
Προσθήκη και ενημέρωση εγγραφών σε βάση δεδομένων
Έστω ο πίνακας clients (id, name, surname) με το id ρυθμισμένο σε auto_increment ώστε να αυξάνεται μόνο του με κάθε εγγραφή που προσθέτουμε. Αρχικά δημιουργούμε ένα αρχείο add.php ή update.php και καλούμε τη συνάρτηση που δημιουργήσαμε πριν, ώστε να συνδεθούμε στη βάση δεδομένων.
<?php // Εισαγωγή του αρχείου με την συνάρτηση include(“dbconn.php”); // Καλούμε την συνάρτηση dbconnect(); … // Αποσύνδεση απο τον διακομιστή /mysql_close($db_connect); ?>
Στη συνέχεια με τον παρακάτω κώδικα δηλώνουμε τι θέλουμε να εισάγουμε και που.
// Προσθήκη δεδομένων
$qAdd = mysql_query("INSERT INTO clients (id, name, surname)
VALUES ('', 'Νίκος', 'Παπανικολάου')") or die
("Παρουσιάστηκε πρόβλημα κατά την εισαγωγή των αρχείων."));
if ($qAdd)
{
echo "Τα δεδομένα προστέθηκαν.";
}
Ενώ με τον παρακάτω τι θέλουμε να αλλάξουμε/επεξεργαστούμε.
// Ενημέρωση δεδομένων
$qUpdate=mysql_query("UPDATE clients SET name = 'name', surname =
'surname' WHERE id='1' ");
if ($qUpdate)
{
echo "Τα δεδομένα ενημερώθηκαν.";
}
Έτσι το αρχείο add.php παίρνει την παρακάτω μορφή,
<?php
// Εισαγωγή του αρχείου με την συνάρτηση
include(“dbconn.php”);
// Καλούμε την συνάρτηση
dbconnect();
// Προσθήκη δεδομένων
$qAdd = mysql_query("INSERT INTO clients (id, name, surname)
VALUES ('', 'Νίκος', 'Παπανικολάου')") or die
("Παρουσιάστηκε πρόβλημα κατά την εισαγωγή των αρχείων."));
if ($qAdd)
{
echo "Τα δεδομένα προστέθηκαν.";
}
// Αποσύνδεση απο τον διακομιστή
/mysql_close($db_connect);
?>
Ενώ το update.php την παρακάτω:
<?php
// Εισαγωγή του αρχείου με την συνάρτηση
include(“dbconn.php”);
// Καλούμε την συνάρτηση
dbconnect();
// Ενημέρωση δεδομένων
$qUpdate=mysql_query("UPDATE clients SET name = 'name', surname =
'surname' WHERE id='1' ");
if ($qUpdate)
{
echo "Τα δεδομένα ενημερώθηκαν.";
}
// Αποσύνδεση απο τον διακομιστή
/mysql_close($db_connect);
?>
Εμφάνιση εγγραφών από βάση δεδομένων
Αρχικά δημιουργούμε ένα αρχείο index.php και καλούμε τη συνάρτηση που δημιουργήσαμε πριν, ώστε να συνδεθούμε στη βάση δεδομένων.
<?php // Εισαγωγή του αρχείου με την συνάρτηση include(“dbconn.php”); // Καλούμε την συνάρτηση dbconnect(); … // Αποσύνδεση απο τον διακομιστή /mysql_close($db_connect); ?>
Στη συνέχεια με τον παρακάτω κώδικα «τραβάμε» τα αποτελέσματα από την βάση μας.
// Ερώτημα προς την βάση
$q=mysql_query("SELECT * FROM clients ");
$num = mysql_num_rows($q);
// Αν υπάρχουν αποτελέσματα
if ($num > 0 ) {
$i=0;
while ($i < $num) {
// Δημιουργία σύντομων ονομάτων μεταβλητών
$name = mysql_result($q,$i,"name");
$surname = mysql_result($q,$i,"surname");
// Εκτύπωση μεταβλητών
echo "Όνομα: $name<br />";
echo "Επώνυμο: $surname <br />";
// Αν δεν υπάρχουν αποτελέσματα
++$i; } } else { echo "Δεν έχουν καταχωρηθεί δεδομένα για εσάς ακόμα."; }
Έτσι το αρχείο παίρνει την παρακάτω μορφή.
<?php
// Εισαγωγή του αρχείου με την συνάρτηση
include(“dbconn.php”);
// Καλούμε την συνάρτηση
dbconnect();
// Ερώτημα προς την βάση
$q=mysql_query("SELECT * FROM clients ");
$num = mysql_num_rows($q);
// Αν υπάρχουν αποτελέσματα
if ($num > 0 ) {
$i=0;
while ($i < $num) {
// Δημιουργία σύντομων ονομάτων μεταβλητών
$name = mysql_result($q,$i,"name");
$surname = mysql_result($q,$i,"surname");
// Εκτύπωση μεταβλητών
echo "Όνομα: $name<br />";
echo "Επώνυμο: $surname <br />";
// Αν δεν υπάρχουν αποτελέσματα
++$i; } } else { echo "Δεν έχουν καταχωρηθεί δεδομένα για εσάς ακόμα."; }
// Αποσύνδεση απο τον διακομιστή
/mysql_close($db_connect);
?>
Μπορούμε να συμπεριλάβουμε και διάφορα κριτίρια στην αναζήτησή μας, όπως αν το όνομα είναι «Νίκος». Αυτό γίνεται προστέτοντας στο mysql query το WHERE name=’Νίκος’
$q=mysql_query("SELECT * FROM clients WHERE name=’Νίκος’");
Διαγραφή εγγραφών από βάση δεδομένων
Αρχικά δημιουργούμε ένα αρχείο delete.php και καλούμε τη συνάρτηση που δημιουργήσαμε πριν, ώστε να συνδεθούμε στη βάση δεδομένων.
<?php // Εισαγωγή του αρχείου με την συνάρτηση include(“dbconn.php”); // Καλούμε την συνάρτηση dbconnect(); … // Αποσύνδεση απο τον διακομιστή /mysql_close($db_connect); ?>
Στη συνέχεια με τον παρακάτω κώδικα δηλώνουμε τι θέλουμε να διαγράψουμε.
// Αφαίρεση δεδομένων
$qRemove = mysql_query("DELETE FROM clients WHERE id='1' ");
if ($qRemove)
{
echo "Τα δεδομένα αφαιρέθηκαν.";
}
Έτσι το αρχείο παίρνει την παρακάτω μορφή.
<?php
// Εισαγωγή του αρχείου με την συνάρτηση
include(“dbconn.php”);
// Καλούμε την συνάρτηση
dbconnect();
// Αφαίρεση δεδομένων
$qRemove = mysql_query("DELETE FROM clients WHERE id='1' ");
if ($qRemove)
{
echo "Τα δεδομένα αφαιρέθηκαν.";
}
// Αποσύνδεση απο τον διακομιστή
/mysql_close($db_connect);
?>
Στα επόμενα βοηθήματα, θα δημιουργήσουμε φόρμες εισαγωγής, επεξεργασίας, προβολής και διαγραφής εγγραφών, και θα ασχοληθούμε με την επαλήθευση των δεδομένων που μας δίνει ο χρήστης.
Άν είστε ήδη συνδρομητής κάντε login με τα στοιχεία σας. Για να γίνετε συνδρομητής πατήστε εδώ

