html5 nouveaux éléments
La clause Where est employée pour filtrer des enregistrements.
Jusqu’à présent dans ce didacticiel, vous avez appris comment créer une base de données et la table, insérer les informations et afficher les informations de la base de données.Dans cette partie, je vais vous montrer autres façons d'affichage et de sortie des l'informations dans la base de données.
Nous avons vu la commande SQL SELECT pour récupérer les données de la table MySQL.Nous pouvons utiliser une clause conditionnelle appelé WHERE pour filtrer les résultats.La clause Where est employée pour filtrer des enregistrements.
Le mot clé Where est employée pour extraire uniquement des enregistrements qui remplissent un critère spécifique.
SELECT nom_colonne(s) FROM nom_table WHERE nom_colonne opérateur valeur
Exemple
L'exemple suivant choisit les rangées à partir de la table "visiteurs" quand "age" est superieur à 25
<?PHP
$con = mysql_connect (" server "," user", " passe") ;
if (!$con)
{
die('connexion impossible' .mysql_error());
}
mysql_select_db (" maBase ", $con) ;
$result = mysql_query("SELECT * FROM visiteurs WHERE age < 25");
while($row = mysql_fetch_array($result))
{
echo $row['nom'] ." " .$row['prenom'];
echo " <br> ";
}?>
SELECT * FROM Livres WHERE Prix >50 AND Prix < 70;
Dans l'exemple on selectionne dans la table livre tous les enregistrements dont le prix est superieur à 50 et inferieur à 70.
Le mot clé LIKE utilisé avec le WHERE va vous permettre de faire une sélection "approximative" dans vos tables, par exemple ici vous voulez tous les livres dont le titre commence par 'bo' ou par 'b'.
SELECT * FROM Livres WHERE Titre LIKE 'bo%';
Ou encors par exemple ici vous voulez tous les livres dont le titre commence par 'b'.
Sélectionner le code
SELECT * FROM Livres WHERE titre LIKE 'b_';
SELECT * FROM Livres WHERE Prix IN (40, 50, 60);
SELECT * FROM Livres WHERE Prix BETWEEN 40 AND 50;
SELECT * FROM Livres, categorie WHERE Livres.idCat = categorie.idCat;
Dans le dernier chapitre du tutorial nous avons affiché une liste de toutes les personnes enregistrées dans la base de données.Cela nous a donné juste une sortie très basique, mais qui n'est pas particulièrement utile pour un site de travail.Au lieu de cela, il serait mieux si nous pourrions formater cette liste et l'afficher dans une table.
Cette mise en forme n'est pas particulièrement compliquée.Tout ce que vous devez faire est d'utiliser PHP pour afficher du HTML et inclure vos variables dans les espaces correctes comme le montre le code qui suit :
Sélectionner le code
<html lang="fr">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="styles.css" media="all">
</head>
<body>
<?php
$username="nom utilisateur";
$password="mot de passe";
$database="votre base de donnée";
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Imposiple de sélectinner la base de données");
$demande="SELECT * FROM contacts";
$resultat=mysql_query($demande);
$num=mysql_numrows($resultat);
mysql_close();
?>
<table>
<tr>
<th> Nom complet </th>
<th> Téléphone </th>
<th> Mobile </th>
<th> Fax </th>
<th> E-mail </th>
<th> site Web </th>
</tr>
<?php
$i = 0 ;
while($i < $num) {}
$prenom=mysql_result($result,$i,'prenom') ;
$nom=mysql_result($result,$i,'nom') ;
$phone=mysql_result($result,$i,'telephone') ;
$mobile=mysql_result($result,$i,'mobile') ;
$fax=mysql_result($result,$i,'fax') ;
$email=mysql_result($result,$i,'email') ;
$web=mysql_result($result,$i,'web') ;
echo '<tr><td>'.$prenom.' '.$nom.'</td>
<td>'.$phone.'</td>
<td>'.$mobile.'</td>
<td>'.$fax.'</td>
<td> <a href = "mailto : '.$email.' "> E-mail </a></td>
<td> <a href = "'.$web.'"> site Web </a></td>
<td><a href="modifier.php?id='.$id.'">Modifier</a></td><td><a href="supprimer.php?id='.$id.'">Supprimer </a></td>
</tr>';
$i++;
}
?>
</table>
</body>
</html>
Ce code va imprimer des en-têtes de tableau, puis ajouter une ligne supplémentaire pour chaque enregistrement dans la base de données.
Si vous maîtrisez PHP et HTML, le code est probablement assez explicite mais je ferai juste remarquer l’avant dernière ligne de la table, par exemple :
<a href="modifier.php?id='.$id.'">Modifier</a></td><td><a href="suprimer.php?id='.$id.'">Suprimer </a></td>
Cela montre une des fonctionnalités utiles à utiliser en PHP. Dans cette ligne nous avons créé un lien qui pointe vers une page avec envoie d'une donnée qui est l'id de l'enregistrement lequel est stocké dans la variable $id. nous aurons besoin de ce lien plus tard dans le chapitre sur la mise à jour de la base de données pour suprimer un contact de la base de données.
Ainsi que l'affichage de la base de données toute entière, PHP peut être utilisé pour sélectionner des enregistrements individuels, ou seulement des enregistrements qui correspondent à certains critères.Pour ce faire, vous devez utiliser une variante de la requête SELECT.Pour afficher l'ensemble de la table, nous avons utilisé la requête :
SELECT * FROM contacts
Si nous voulions simplement sélectionner ceux qui avait le prénom « John » vous utilisez la variante suivante de la requête:
SELECT * FROM contacts WHERE prenom = " Jean "
Bien que je ne vais pas interpréter en profondeur ce sujet dans cette section, vous pouvez également utiliser des variables pour donner les critères de base de données.Par exemple, si vous aviez un formulaire de recherche, vous pourriez obtenir le nom de famille que les gens voulaient chercher et le stockez dans une variable appelée par exemple $search.Ensuite, vous pouvez exécuter le morceau de code suivant :
$query = "SELECT * FROM contacts WHERE nom = '$search'" ;
$result=mysql_query($query) ;
Veuillez noter qu'à la fin de la première ligne il y a un ' suivie d'un " avant le point-virgule.
À ce stade il est à noter que vous devez faire très attention en utilisant la technique ci-dessus.Sans mesures de sécurité correcte, il serait très facile pour une personne à accéder aux données sur votre serveur, ou même apporter des modifications à la base de données.Cela peut se produire si l'utilisateur définit la variable à une valeur qui modifie la chaîne SQL générée de manière à ce qu'il peut être utilisé pour leurs propres fins.Je n'entrerai pas dans tous les détails ici.
SCREEBER - Logiciel de copywriting Augmentez vos résultats en rejoignant les 1600 entrepreneurs qui utilisent Screeber®, le seul logiciel de Copywriting (en français) qui rédige avec vous des textes de vente qui convertissent