4.3 PHP ??? Hands on !!!
4.3.1 Pour se connecter à la base
<? $db = mysql_connect('tecfa.unige.ch', 'login', 'password'); // 1 mysql_select_db('nom_de_la_base',$db); // 2 $req = mysql_query('SELECT * FROM clients_tbl'); // 3 $res = mysql_numrows($req); // 4 echo 'Il y a '.$res.' enregistrement(s) dans la table Clients.'; // 5 mysql_close($db); // 6 ?>
1 # On se connecte à la base de données : Host : Dans notre cas le HOST est "sql.free.fr", vous pouvez également utiliser "localhost" par défaut. Login : Ensuite vous devez mettre le "login" pour accéder à la base (chez les hébergeurs gratuits c'est souvent le même login que l'accès FTP). Password : Et pour finir le "mot de passe", là aussi il s'agit très souvent du même password que l'accès FTP.
2-On sélectionne la base de données, en effet je vous rappelle que MySQL est un serveur de bases de données, donc il peut contenir plusieurs bases. Bien sûr dans votre cas si vous êtes chez un hébergeur gratuit, vous n'avez en général droit qu'à une seule base, mais MySQL ne le sait pas ;), il faut donc lui spécifier sur quelle base vous souhaitez vous connecter.
3-La fonction Mysql_query() permet de passer une requête SQL vers la base de données, c'est évidement l'un des attraits intéressant de PHP (notez que nous initialisons au passage la variable $req qui contient la requête).
4-La fonction Mysql_numrows() permet de compter le nombre d'enregistrements que retourne la requête "$req" dans notre cas : 5 puisqu'il s'agit d'un simple "select " sur la table sans aucune condition, nous initialisons donc une variable $res qui contient :
5-Il ne reste plus qu'à afficher le nombre de résultat avec un echo() de $res.
6- Et pour finir on referme la connexion - ouverte avec mysql_connect - avec la fonction Mysql_close(). Cette fonction n'est pas vraiment obligatoire avec un Mysql_connect(), car par défaut la connexion sera coupée automatiquement à la fin de l'exécution du script.
4.3.2 Se connecter et afficher les résultats.
<? // on se connecte à MySQL $db = mysql_connect('localhost', 'login', 'password'); // on sélectionne la base mysql_select_db('nom_de_la_base',$db); // on crée la requete SQL et on l'envoie $sql = 'SELECT nom,prenom,statut,date FROM famille_tbl'; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrements while($data = mysql_fetch_array($req)) { // on affiche les informations de l'enregistrement en cours echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')'; echo ' <i>date de naissance : '.$data['date'].'</i><br>'; } // on ferme la connexion à mysql mysql_close(); ?>
4.3.3 Alimenter une table
Création de la table
requête SQL: CREATE TABLE infos_tbl (id INT (11) not null AUTO_INCREMENT, nom VARCHAR (35) not null , prenom VARCHAR (35) not null , email VARCHAR (70) not null , icq INT (11) null , titre VARCHAR (70) not null , url VARCHAR (255) not null , PRIMARY KEY (id), INDEX (id), UNIQUE (id))
Formulaire HTML
<html> <form method="POST" action="add.php3"> <center> <input type="text" name="nom" size="20" value="nom" maxlength="35"> <input type="text" name="prenom" size="20" value="prenom" maxlength="35"><br> <input type="text" name="email" size="20" value="email" maxlength="70"> <input type="text" name="icq" size="20" value="icq" maxlength="11"><br> <input type="text" name="titre" size="20" value="titre du site" maxlength="70"> <input type="text" name="url" size="20" value="url du site" maxlength="255"><br> <input type="submit" value="Envoyer" name="envoyer"> </center> </form> </html>
add.php3
<? // On commence par vérifier si les champs sont vides if(empty($nom) OR empty($prenom) OR empty($email) OR empty($titre) OR empty($url)) { echo '<font color="red">Attention, seul le champs <b>ICQ</b> peut rester vide !</font>'; } // Aucun champ n'est vide, on peut enregistrer dans la table else { // connexion à la base $db = mysql_connect('localhost', 'login', 'password') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('nom_de_la_base',$db) or die('Erreur de selection '.mysql_error()); // on ecris la requete sql $sql = "INSERT INTO infos_tbl VALUES('','$nom','$prenom','$email','$icq','$titre','$url')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo 'Vos infos on été ajoutées.'; mysql_close(); // on ferme la connexion } ?>
4.3.4 Ces exemples sont extraits de
See related topics and documents