« 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é (-(\<br \/\>\s?){2,} +<br>\n)
m Robot : remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2)
Ligne 41 :
==== Configurer la connexion ====
On met les paramètres de connexion dans une fonction, dans notre fichier fonctions.php par exemple :
<sourcesyntaxhighlight lang="php">
<?php
function connectMaBase(){
Ligne 48 :
}
?>
</syntaxhighlight>
</source>
* la variable $base contient l’objet de connexion à votre base de données (BDD) avec:
** le nom du serveur (ici localhost ou 127.0.0.1 c’est équivalents),
Ligne 59 :
# dans le fichier form.php : écrire un include du fichier fonctions.php
# placer la fonction à l'endroit opportun avec la ligne suivante :
<sourcesyntaxhighlight lang="php">
<?php
connectMaBase();
</syntaxhighlight>
</source>
 
==== Fermer la connexion ====
Ligne 70 :
# on l'exécute
# on ferme la connexion avec la fonction PHP suivante
<sourcesyntaxhighlight lang="php">
<?php
// on ferme la connexion
mysql_close();
?>
</syntaxhighlight>
</source>
 
=== Insérer des données ===
Dans le fichier php, pour faire une insertion, on écrira par exemple :
<sourcesyntaxhighlight lang="php">
<?php
//On récupère les valeurs entrées par l'utilisateur :
Ligne 98 :
mysql_close();
?>
</syntaxhighlight>
</source>
 
La partie la plus complexe pour vous est probablement la création de la requête SQL :
<sourcesyntaxhighlight lang="php">
<?php
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO Utilisateurs VALUES(NULL,"'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")';
?>
</syntaxhighlight>
</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, vous aurez un message d'erreur SQL indiquant que le nombre de données insérées ne coïncide pas avec le nombre de champs.
Ligne 119 :
{{solution|contenu=
Avec la nouvelle fonction connectMaBase, voici le fichier fonctions.php :
<sourcesyntaxhighlight lang="php">
<?php
function connectMaBase(){
Ligne 163 :
}
 
</syntaxhighlight>
</source>
 
Et voici les modifications du fichier monCV.php pour l'enregistrement des CVs :
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
Ligne 237 :
</body>
</html>
</syntaxhighlight>
</source>
}}
 
=== 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 CV concernant Toto par exemple.
<sourcesyntaxhighlight lang="sql">
SELECT * FROM CVs WHERE nom= "Toto"
</syntaxhighlight>
</source>
 
Pour chaque CV, PHP va nous envoyer plusieurs plusieurs informations (l'ID, le prénom, l’adresse...). Chaque enregistrement récupéré de la BDD sera utilisable sous la forme d'un tableau associatif.
 
On va utiliser la fonction suivante pour récupérer ce tableau :
<sourcesyntaxhighlight lang="php">
mysql_fetch_array($TrucRecupereSurSql)
</syntaxhighlight>
</source>
 
'''On récupère ainsi un tableau associatif qui a pour indice : le nom de chaque champ.'''
Ligne 268 :
 
Exemple :
<sourcesyntaxhighlight lang="php">
<?php
include("fonctions.php");
Ligne 294 :
</body>
</html>
</syntaxhighlight>
</source>
 
=== Rechercher des données ===
Ligne 302 :
 
Cela signifie que l’on veut obtenir une variable $sql du type :
<sourcesyntaxhighlight lang="php">
$sql = 'SELECT * FROM utilisateurs WHERE '.$champ.' ="'.$critere.'"';
</syntaxhighlight>
</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.
 
<sourcesyntaxhighlight lang="php">
<!-- Commentaires HTML
On construit une liste déroulante ( un select et plusieurs options)
Ligne 332 :
</form>
<!-- On ferme le formulaire -->
</syntaxhighlight>
</source>
 
'''Exercice''' :
Vous allez maintenant créer une page pour rechercher un CV. Dans une page PHP index.php, vous allez créer le formulaire :
<sourcesyntaxhighlight lang="text">
Rechercher dans [liste champs]|V| [________] [Chercher]
</syntaxhighlight>
</source>
# Créez le formulaire ci-dessus, dont voici la description :
#* [liste champs]|V| est un champ Select qui contient la liste des champs de la table Expériences.
Ligne 345 :
# 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 :
<sourcesyntaxhighlight lang="php">
$sql = 'SELECT * FROM Experiences WHERE '.$champ. ' LIKE "%'.$critere. '%"';
</syntaxhighlight>
</source>
 
{{solution|contenu=
Voici un exemple du fichier index.php que vous devez avoir développé :
<sourcesyntaxhighlight lang="php">
<html>
<head>
Ligne 410 :
</body>
</html>
</syntaxhighlight>
</source>
}}