PHP/MySQL – opérations sur la base de donnée
Créé le : 9 octobre 2016
Catégorie: Divers
Mise à jour : 9 octobre 2016
PHP/MySQL – opérations sur la base de donnée
Pense bête
- Créer un fichier connect.php pour centraliser les infos de connexion
- lire tout : SELECT * FROM nom_de_la_table
- lire une seule entrée : SELECT * FROM nom_de_la_table WHERE id=$id
- Ajouter : INSERT INTO nom_de_la_table (colonne1,colonne2,colonne3) VALUES (‘$valeur1′,’$valeur2′,’$valeur3’)
- Modifier : UPDATE nom_de_la_table SET colonne1=’$valeur1′,colonne2=’$valeur2′,colonne3=’$valeur3′ WHERE id=$id
- Supprimer : DELETE FROM nom_de_la_table WHERE id=$id
- Recherche globale : SELECT * FROM nom_de_la_table WHERE (`colonne1` LIKE ‘% ».$query. »%’) OR (`colonne2` LIKE ‘% ».$query. »%’) OR (`colonne3` LIKE ‘% ».$query. »%’)
- Recherche avancée : SELECT * FROM nom_de_la_table WHERE (`colonne1` LIKE ‘% ».$valeur1. »%’) AND (`colonne2` LIKE ‘% ».$valeur2. »%’) AND (`colonne3` LIKE ‘% ».$valeur3. »%’)
Des exemples de chaque opération est disponible juste en dessous
Création du fichier commun de connexion
Ce fichier pourra par exemple être nommé connect.php. Il sera appelé par les autres fichiers pour se connecter à la base. Cela permet de n’avoir qu’à un seul endroit les infos de connexions à la base.
<?php //On se connecte à la base de données $host = "adresse.du.serveur"; $user = "user bdd"; $passBD = "mot de passe bdd"; $bdd = "nom de la bdd"; mysql_connect($host,$user,$passBD) or die ("Impossible de se connecter à $host"); mysql_select_db($bdd) or die ("Impossible de se connecter à $host"); ?>
Lire toutes les entrées
<?php //on appelle le fichier de connexion include 'connect.php'; $sql2 = 'SELECT * FROM nom_de_la_table'; $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error()); //facultatif : affichage du nombre d'entrées $num_rows = mysql_num_rows($req2); echo "il y a : ".$num_rows." entrées."; //debut boucle while ($donnee2 = mysql_fetch_array($req2)) { echo $donnee2['colonne1']."</br>"; echo $donnee2['colonne2']."</br>"; echo $donnee2['colonne3']."</br>"; } //fin boucle mysql_free_result ($req2); mysql_close(); ?>
Lire une seule entrée
<?php //récupération de l'id de l'entrée voulu //si formulaire //$id= (int )$_POST['id']; //si variable dans le lien $id= (int )$_GET['id']; //on appelle le fichier de connexion include 'connect.php'; $sql2 = "SELECT * FROM nom_de_la_table WHERE id=$id"; $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error()); while ($donnee2 = mysql_fetch_array($req2)){ echo $donnee2['id']; echo $donnee2['colonne1']; echo $donnee2['colonne2']; echo $donnee2['colonne3']; } // On libère la mémoire mysql_free_result ($req2); //On ferme la connexion mysql_close(); ?>
Ajouter une entrée
<?php //récupération des valeurs du formulaire $valeur1=htmlspecialchars(addslashes($_POST['valeur1'])); $valeur2=htmlspecialchars(addslashes($_POST['valeur2'])); $valeur3=htmlspecialchars(addslashes($_POST['valeur3'])); //on appelle le fichier de connexion include 'connect.php'; // Create connection $conn = mysqli_connect($host, $user, $passBD, $bdd); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO nom_de_la_table (colonne1,colonne2,colonne3) VALUES ('$valeur1','$valeur2','$valeur3')"; if (mysqli_query($conn, $sql)) { //enregistrement OK //mettre du code ici quand ok //ex: header('Location: index.php'); } else { //Erreur echo "Error updating record: " . mysqli_error($conn); } mysqli_close($conn); ?>
Modifier une entrée
<?php //récupération des valeurs du formulaire $id=(int)$_POST['id']; $valeur1=htmlspecialchars(addslashes($_POST['valeur1'])); $valeur2=htmlspecialchars(addslashes($_POST['valeur2'])); $valeur3=htmlspecialchars(addslashes($_POST['valeur3'])); //on appelle le fichier de connexion include 'connect.php'; // Create connection $conn = mysqli_connect($host, $user, $passBD, $bdd); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "UPDATE nom_de_la_table SET colonne1='$valeur1',colonne2='$valeur2',colonne3='$valeur3' WHERE id=$id"; if (mysqli_query($conn, $sql)) { echo "Record updated successfully"; header('Location: index.php'); } else { echo "Error updating record: " . mysqli_error($conn); } mysqli_close($conn); ?>
Supprimer une entrée
<?php //récupération des valeurs du formulaire $id=(int)$_POST['id']; //on appelle le fichier de connexion include 'connect.php'; // Create connection $conn = mysqli_connect($host, $user, $passBD, $bdd); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "DELETE FROM nom_de_la_table WHERE id=$id"; if (mysqli_query($conn, $sql)) { header('Location: index.php'); } else { echo "Error updating record: " . mysqli_error($conn); ?><p><a class="bouton" href="index.php">Retour</a></p> <?php } mysqli_close($conn); ?>
Recherche globale
Rechercher parmi n’importe quelle valeur
<?php //récupération des valeurs du formulaire $query = $_POST['query']; //on appelle le fichier de connexion include 'connect.php'; // taille de lerecheche minimum $min_length = 2; if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then $query = htmlspecialchars($query); // changes characters used in html to their equivalents, for example: < to > $query = mysql_real_escape_string($query); // makes sure nobody uses SQL injection $raw_results = mysql_query("SELECT * FROM nom_de_la_table WHERE (`colonne1` LIKE '%".$query."%') OR (`colonne2` LIKE '%".$query."%') OR (`colonne3` LIKE '%".$query."%') ") or die(mysql_error()); // '%$query%' est votre recherche, % veut dire tout, par exemple si $query est toto // cela trouvera "toto", "Monsieur toto", "tititototata", si vous voulez la correspondance exacte utilisez `colonne1`='$query' // ou si vous voulez juste le mot complet utilisez '% $query %' ...OR ... '$query %' ... OR ... '% $query' if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following echo "<h1>Résultat de la recherche : ".$query."</span></h1>"; while($results = mysql_fetch_array($raw_results)){ // $results = mysql_fetch_array($raw_results) cela met les valeurs trouvée dans une array puis fait une boucle (loop) ?> <div class="liste"> <a href="visu.php?ref=<?php echo $results['ref'];?>"> <div class="listligne"> <span class="element1"><?php echo $results['colonne1'];?></span> <span class="element2"><?php echo $results['colonne2'];?></span> <span class="element3"><?php echo $results['colonne3'];?></span> </div></a></div><?php } } else{ // Si il n'a a pas de correspondance echo "Pas de résultat pour : ".$query; } } else{ // cas si la recherche est trop courte //echo "Minimum length is ".$min_length; header('Location: main.php?err=1'); } ?>
Recherche avancée
Recherche seulement parmi le champs renseigné
Prendre le code de la recherche globale et remplacer le code du mysql_query par
$raw_results = mysql_query("SELECT * FROM nom_de_la_table WHERE (`colonne1` LIKE '%".$valeur1."%') AND (`colonne2` LIKE '%".$valeur2."%') AND (`colonne3` LIKE '%".$valeur3."%') ") or die(mysql_error());
Laissez un commentaire