« SPARQL Protocol and RDF Query Language/Travail pratique/PHP avec MySQL » : différence entre les versions
Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-numero +numéro) |
Aucun résumé des modifications |
||
Ligne 15 :
Dans ce TP, nous allons enregistrer nos CV dans la base de données MySQL que nous avons créé dans le [[SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à MySQL|TP Initiation à MySQL]]
Ce TP a pour objectif de comprendre comment une base données est utilisée par un langage comme PHP pour pouvoir appliquer ensuite cette méthode avec SPARQL.
=== Durée du TP ===
Ligne 24 :
Il vous faut avoir fait tous les TPs précédent.
== A savoir
Pour rappel:
* le code HTML ne sert qu'à l'affichage.
* Le code PHP sert à créer un HTML dynamique
Cependant, PHP n'a pas le "pouvoir" de mémoriser des données entre deux chargements de page. A moins que vous transmettez des données d'une page web à l'autre, via un formulaire HTML !
Si vous voulez conserver sur la durée les données entrées par les visiteurs de votre site via votre formulaire, de
== TP Base de données ==
Ligne 53 ⟶ 52 :
?>
</source>
* la variable $base contient l'objet de connexion à votre base de données (ou BDD) avec
** le nom du serveur (ici localhost ou 127.0.0.1 c'est
** le nom de l'utilisateur (ici root qui signifie administrateur de votre
** Et enfin
* La ligne suivante lance la commande de sélection
==== Ouvrir la connexion ====
Pour
#
#
<source lang="php">
<?php
Ligne 69 ⟶ 68 :
==== Fermer la connexion ====
Quand on rédige une commande SQL via PHP, on procède ainsi
#
#
#
#
<source lang="php">
<?php
Ligne 97 ⟶ 96 :
/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion
Ligne 108 ⟶ 107 :
<?php
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO Utilisateurs VALUES(
?>
</source>
* La première valeur est laissée vide car c'est la place de l'ID qui doit s'auto-incrémenter.
** Si vous l'oubliez, il vous renverra un message d'erreur
*
'''Exercice :''' SANS COPIER COLLER, vous allez :
* Reprendre votre projet Eclipse pour que le CV soit enregistré dan votre nouvelle BDD.
* Pour récupérer
*
* Si vous ne trouvez pas l’erreur, utilisez les commentaires et le débuggueur
{{solution|contenu=
Ligne 171 ⟶ 168 :
</source>
Et voici les
<source lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Ligne 248 ⟶ 245 :
=== Afficher des données ===
On a déjà utilisé la syntaxe SQL d'une simple requête pour récupérer des données dans un TP précédent: pour récupérer tous les CVs concernant Toto par exemple.
<source lang="sql">
SELECT * FROM CVs WHERE nom= "Toto"
</source>
Pour chaque CV, PHP va nous envoyer plusieurs
On va utiliser la fonction suivante pour récupérer ce tableau :
Ligne 268 ⟶ 264 :
# On prépare la commande SQL en la stockant dans la variable $sql.
# On exécute la requête, en récupérant le résultat dans une variable que nous appellerons $req.
# Si c'est un tableau : On
#* A chaque itération la fonction mysql_fetch_array($req) instancie la variable $data
#* chaque champ de l'enregistrement est accessible via la commande : $data['champ']
Ligne 305 ⟶ 301 :
=== Rechercher des données ===
Nous avons un formulaire qui enregistre des CVs et une page page qui peut les afficher. Il nous faut maintenant une page pour retrouver des CVs. Cette page se nomme un formulaire de recherche et ce formulaire peut contenir un ou plusieurs
Pour notre TP, nous allons laisser à l'utilisateur le choix de son critère de recherche : un utilisateur entrera dans un formulaire son critère. C'est une option peu ergonomique car cela peut troubler les utilisateurs non informaticiens. Cependant, cela sera un bon exemple pour l'utilisation de SQL.
Ligne 314 ⟶ 310 :
</source>
* Il faut pouvoir proposer un formulaire où l'utilisateur entrera son choix de champ et la valeur attendue...
* Il faut donc construire la liste de champs sous forme de liste déroulante en lisant le contenu de la BDD une première fois : car l’utilisateur n'est pas censé connaître le contenu de la BDD
<source lang="php">
<!-- Commentaires HTML
On construit une liste déroulante ( un select et plusieurs options)
Chaque option sera remplie par une donnée
-->
<form method="post" action="admin.php">
Ligne 349 ⟶ 345 :
#* [liste champs]|V| est un champ Select qui contient la liste des champs de la table Expériences.
#* [________] est un champ texte
#* [Chercher] est un bouton pour lancer la recherche
# Vous afficherez les résultats en dessous du formulaire sous forme de lien pour afficher le CV correspondant
#* Pour faire une recherche dans un texte vous devrez utiliser non pas une égalité en SQL mais la fonction LIKE comme ci-dessous :
|