19- PHP ===> Insert, Select, Update, Delete

0 commentaires
Trier (Classer) toute la base :

      Si on veut présenter maintenant la table triée par ordre de nom, alors il suffit juste de rajouter à la requête SQL de base un ORDER by nomchamps ASC

Le détail de la requête SQL (cf page 128) donne:

SELECT * FROM $table ORDER by chptable ASC|DESC

$table : représente la variable contenant le nom de la table concernée
chptable : représente le champ de la table sur lequel on désire faire le tri
ASC|DESC : représente l'ordre croissant ou décroissant

/*** On cherche tous les enregistrements ***/
$query = "SELECT * FROM $table ORDER by nom ASC";
et si l'on souhaite avoir uniquement les informations du type genre – nom – adresse mail, il suffira de ne pas traiter tous les éléments du tableau renvoyé par mysql_fetch_row()…

while($row = mysql_fetch_row($result))
{
/** on affiche le genre, le nom, l'email **/
echo "
<p>\n
<b>$row[4] $row[2] $row[3]</b>\n
<p>\n
";
}

    Maintenant que l'on sait créer une base MySQL et que l'on a vu le principe d'écriture d'une requête SQL à travers la primitive php mysql_query, essayons de traiter un exemple plus complet que le simple affichage du nombre d'enregistrements existants dans une table.

Afficher toute la base dans un tableau (1° variante):
Pour présenter mieux le résultat on utilise un tableau HTML

<?
Include("connection.php3");
/*** On cherche tous les enregistrements ***/
$query = "SELECT * FROM $table";
/*** envoi de la requête à la base ***/
$result = mysql_query($query);
echo "<Table>";
while($row = mysql_fetch_row($result))
{
$id=$row[0];
$nom=$row[1];
$prenom=$row[2];
$email=$row[3];
$genre=$row[4];
echo "<tr>
<td width=22%>$id</td>
<td width=22%>$genre</td>
<td width=22%>$nom</td>
<td width=22%>$prenom</td>
<td width=34%>$email</td>
</tr>";
}
echo "</Table>";
/*** on ferme la connexion ***/
mysql_close();
?>

Afficher toute la base dans un tableau (2° variante):
Pour encore mieux présenter le résultat on utilise un tableau HTML avec des couleurs alternées automatiquement pour chaque ligne, ce qui s'obtient relativement facilement à l'aide de variables statiques, c'est à dire gardant leur valeur d'un appel à l'autre...
On avait déjà vu cet effet dans le cours sur les variables statiques (page 47 ), il n'y a donc pas grand chose à dire de plus...

function couleur()
{
static $couleur;
if ($couleur == "#dddeee")
{
$couleur = "#add8e6";
}
else
{
$couleur = "#dddeee";
}
return ($couleur);
}
puis dans le code
while($row = mysql_fetch_row($result))
{
$couleuractive = couleur();
$id=$row[0];
$nom=$row[1];
$prenom=$row[2];
$email=$row[3];
$genre=$row[4];
/** on affiche le id, legenre, le nom, le prenom, l'email **/
echo "<tr BGcolor=$couleuractive>
<td width=22%>$id</td>
<td width=22%>$genre</td>
<td width=22%>$nom</td>
<td width=22%>$prenom</td>
<td width=34%>$email</td>
</tr>";
}

    il faut déclarer la fonction couleur() faire un appel à chaque itération et se servir de la couleur pour la ligne du tableau HTML


Rechercher un enregistrement :

      On veut proposer à l'utilisateur la recherche d'un enregistrement qui contient une certaine valeur soit dans le champ nom soit dans le champ prenom...
Il faut créer un formulaire permettant la saisie du nom ou prénom à rechercher


Supprimer un enregistrement :
On veut proposer à l'utilisateur la suppression d'un enregistrement qui correspond à une valeur du champ identificateur...
Il faut créer un formulaire permettant la saisie du n° de l'enregistrement à supprimer


La création du formulaire HTML se passant sans problème (en form_supprime.htm). Il faut créer un script permettant la suppression de l'enregistrement correspondant au numéro saisi Par rapport à un script de sélection classique quelques modifications du code apparaissent.


 La requête sql : DELETE
Le détail de la requête SQL donne:

DELETE FROM $table WHERE chptable = $identifiant
$table : représente la variable contenant le nom de la table concernée
chptable : représente le champ de la table sur lequel on désire faire la recherche
$identifiant : représente la variable contenant le mot recherché.

Le détail de la requête SQL donne:

UPDATE $table SET chptable = $identifiant, WHERE chptable1 = $identifiant1
$table : représente la variable contenant le nom de la table concernée
chptable : représente le champ de la table que l'on souhaite modifier
$identifiant : représente la variable contenant la valeur à utiliser
chptable : représente le champ de la table que l'on souhaite modifier
UPDATE : met à jour une ligne existante dans une table. La clause SET indique quelles colonnes modifier, et quelles valeurs mettre dans ces colonnes. La condition WHERE permet de choisir quelles lignes sont à mettre à jour. Sinon, toutes les lignes sont mises à jour

Compléments SELECT - Filtrer une base :
     Maintenant que l'on a vu un certain nombre de manipulation de la base mysql, on peut décider de filtrer un peu les renseignements obtenus. Cela se fait bien sur à l'aide de l'instruction SELECT (cf page 128) que nous connaissons déjà…

    Mais nous pouvons aussi introduire ici une nouvelle fonction php permettant de compter le nombre d'enregistrements dans un résultat de requête. Il s'agit de la fonction php : mysql_numrows() (voir page 125)

Comme dans l'exemple ci-dessous
$query="SELECT * from $table ";
$result = mysql_query($query);
$nbenreg=mysql_numrows($result);

       Dans les extraits de script ci dessus, une requête est envoyée grâce à l'instruction mysql_query et le résultat de cette requête est stocké dans la variable $result. mysql_numrows permet de compter le nombre
d'enregistrements sélectionnés. Essayez les !

Exemple 1 :
Sélection de tous les enregistrements de la table
$query="SELECT * from $table ";
$result = mysql_query($query);
$nbenreg=mysql_numrows($result);

Exemple 2 :
Sélection de tous les enregistrements de la table dans lesquels nom=Blier
$query="SELECT * from $table where nom='Blier' ";
$result = mysql_query($query);

Exemple 3 :
Sélection de tous les enregistrements de la table dans lesquels nom commence par Du…
$query="SELECT * FROM $table where typevel like 'Du%'";
$result = mysql_query($query);

Exemple 4 :
Sélection de tous les enregistrements de la table dans lesquels nom commence par Du… et dont le genre est Madame
$query="SELECT * FROM $table where ((nom like 'Du%') AND
(genre='Madame'))";
$result = mysql_query($query);

Exemple 5 :
Sélection de tous les enregistrements de la table dans lesquels les ventes sont comprises entre 5000 et 7000
$query="SELECT * FROM $table where (ventes BETWEEN 5000 AND 7000)";
$result = mysql_query($query);

Exemple 6 :
Sélection de tous les enregistrements de la table dans lesquels figurent Mathieu et Boully
$query="SELECT * FROM $table where nom IN ('Blier', 'Durand')";
$result = mysql_query($query);

Exemple 7 :
Sélection de tous les enregistrements de la table dans lesquels
commercial=Mathieu mais récupération uniquement de la valeur des ventes
et des régions concernées
$query="SELECT vente,region FROM $table Where nom='Blier' ";
$result = mysql_query($query);



www.2rattrapage.blogspot.com

0 commentaires:

Enregistrer un commentaire

Copyright 2013 © 2 Rattrapage