Formations privées

Rue Albert 1er, 7

6810 Pin - Chiny

(/fax: 061/32.00.15

Formation PHP - MySql en ligne

Formation Webmaster

Formation: apprenez à créer et référencer votre propre site Internet

FORMATIONS

Le MAGASIN YBET

PRODUITS et SERVICES

Formations informatiques privées

Activités et présentation

Logiciels de gestion

Access - Excel

Rayon d'action  

Logiciel compta CIEL
YBET informatique Forum Création de site Formation Internet

Warning: include(..includes/start-product.php) [function.include]: failed to open stream: No such file or directory in /home/ybet/www/hardware/produit-vertical.php on line 26

Warning: include() [function.include]: Failed opening '..includes/start-product.php' for inclusion (include_path='.:/usr/share/php5') in /home/ybet/www/hardware/produit-vertical.php on line 26
HP HP PROBOOK 4730S CI3-2
HP Probook 4730s Ci3-2310M, win7Pro


Prix: 851.99 € TTC
ACER-ASPIRE-7551G-P324G32
Portable ACER 7551G P324G32MN


Prix: 655.61 € TTC
ACER ASP 5734Z-15-3GB-250
Portable Aspire 5734Z


Prix: 602.92 € TTC
YBET informatique

Formations Privées en informatiques
B-6810 Pin - Chiny

Les chapitres de la formation en ligne PHP - MySQL
1. Introduction au cours Php
2. Installer et utiliser easyphp, tests en local
3. Première commande PHP
4. Fonctions en PHP
5. Les tableaux
6. Fonctions sur les variables, les principales
7. Formulaires Mail
8. Base de donnée MySQL avec easyphp
9. Première application de Mysql
10. Gestion des tables par PHP
10.a Exercice: formulaire de contact
11. Mise en page PHP - HTM: include() - require()
12. Création automatique de la table utilisateur
13. Formulaire et vérification des données
14. Insertion des nouveaux membres
15. Gestion des catégories
16. Liste de choix déroulante
17. Modification des tables MySQL
18. Enregistrer un fichier via un formulaire
19. Formulaire d'insertion
20. Affichage des annonces
21. Filtrage des annonces, première partie
23. Exercice: gérer des news
24. Utilisation des Cookies
25. Gestion fichiers et Dossiers (source et FTP)
26. Cryptage et décryptage de mots de passe
27. Base relationnelle, méthodes Left et Join.
Divers
Formation référencement en ligne, positionnez votre site sur Google, MSN, Yahoo, ...
Les feuilles de styles
FrontPage et l'HTML, cours en ligne
Le fichier Apache .htaccess, configuration serveur, URL Rewriting, accès répertoires.

16. Catégories dans un liste déroulante à partir de la table MySQL

1 Introduction - 2. Liste déroulante - 3. Récupération des catégories - sous-catégorie dans un tableau à partir de la base MySQL - 4. Liste déroulante dans le formulaire

Nous allons maintenant permettre aux utilisateurs d'insérer leurs annonces dans la table annonce. Nous devons non seulement permettre l'insertion d'une annonce mais également vérifier que l'utilisateur permet l'utilisation des cookies. Cette formation étant dédiée à des débutants en PHP - MySQL, nous ferons l'ensemble du développement sur plusieurs parties. 

La première partie va être de créer une liste déroulante reprenant les catégories dans le formulaire d'entrée. Les catégories sont récupérées à partie de la table MySql (y compris une description reprenant le nom des catégories supérieures). Avant de gérer les utilisateurs, nous afficherons les annonces (ce sera la partie suivante) en les intégrant dans notre lay-out du chapitre 11.

L'insertion d'annonces reprendra un formulaire auto-appelé comme dans le chapitre précédant, un seul fichier php reprenait le formulaire et les vérifications.

2. La liste déroulante

Une liste déroulante se code en HTML de la manière suivante. Elle va être insérée dans le formulaire d'entrée de nos petites annonces.

<form method="POST" name="catégorie">

<p><select size="1" name="uid">

<option selected value="valeur 1">catégorie 1</option>

<option value="valeur 2">catégorie 2</option>

</select></p>

<p><input type="submit" value="Envoyer" name="B1"></p>

</form>

Ce qui affiche:

La difficulté est de reprendre non pas des textes et des valeurs fixes comme ci-dessus mais bien des valeurs reprises dans la table. 

La première partie va reprendre l'ensemble des données dans une variable php sous forme de tableaux. Commençons par créer notre formulaire auto-invoquant:

<?php
if (isset($_POST['go'])){
$uid = $_POST['uid'];
echo$uid;
}
$form = "<table>
<form METHOD=POST>
<form method=\"POST\">
<p><select size=\"1\" name='uid'>
<option selected value=\"valeur 1\">catégorie 1</option>
<option value=\"valeur 2\">catégorie 2</option>
</select></p>
<p><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p>
</form>
</table>
<HR>";
print($form);
?>

Ce petit programme ne fait qu'afficher la valeur correspondant à la catégorie. Si vous sélectionnez catégorie 1, il affiche donc valeur 1. Nous allons modifier ce formulaire plus tard pour qu'il affiche le numéro uid en fonction de l'affichage de la catégorie. Pour l'instant commençons par récupérer les catégories avec leur description dans une variable PHP sous forme de tableau que nous appellerons $categorie-tab

3. Récupération de la catégorie - sous catégorie dans un tableau.

  1. La première partie du fichier php ne fait que créer la requête MySQL qui récupère les données.

  2. La deuxième partie va remplir un tableau ($categorie_tab) avec les mêmes valeur correspondante de la table MySQL. Seule distinction, nous ne récupérons pas les catégories non actives, seulement toutes celles dont le contenu est différent de "N". A ce stade, les manipulations sur la table sont terminées et nous pouvons la fermer.

  3. La troisième partie est le coeur de notre affichage. Nous recherchons dans une boucle les catégories des sous catégories. Pour une catégorie, la variable 'attachement' de la table MySQL =0

  4. Si c'est une catégorie (en dessous), la cat1 devient le numéro uid., CAT2 et CAT 3 ne sont pas remplis. 'complet' reprend simplement le nom de la catégorie et nous affichons le nom, et les différent niveaux de catégorie
    $categorie_tab[$i]['cat1']=$categorie_tab[$i]['uid'];
      $categorie_tab[$i]['cat2']=0;
     $categorie_tab[$i]['cat3']=0;
     $categorie_tab[$i]['complet']=$categorie_tab[$i]['nom'];
      print("<br>".$categorie_tab[$i]['complet']." ".$categorie_tab[$i]['cat1']."-".$categorie_tab[$i]['cat2']." ".$categorie_tab[$i]['cat3']);

  5. La difficulté se situe au niveau des sous catégorie. Nous distinguons les sous-catégorie niveau 1 (en dessous d'une catégorie) des sous catégories niveau 2. Dans le cas d'une sous catégorie niveau 1, 'attachement' de la catégorie supérieure doit être à 0. Ce tests se fait par la boucle.
      while ($j<$ligne){
          if(($categorie_tab[$j]['uid']==$k)&&($categorie_tab[$j]['attachement']=="0")){
           $l=1;
           $categorie_tab[$i]['complet']= $categorie_tab[$j]['complet'];
         }
        $j=$j+1;
       }
     // si $l = 1, il s'agit bien d'une sous-catégorie de niveau 1
    Nous remplissons ensuite simplement les valeurs. Remarquez que pour "additionner" deux chaînes ne caractères, nous n'utilisons pas + mais bien . (comme pour les commandes print() et echo de l'affichage).

  6. Dans le cas d'une sous catégorie niveau 2, nous reprenons deux boucles, une pour récupérer la catégorie, 1 pour la sous catégorie.

En schématique, la procédure se résume à:

Récupération des valeurs de la table dans le tableau $categorie_tab

Rentrée des valeurs uniquement si la catégorie est active

Si sous-catégorie

  Si sous-catégorie niveau 1

      Boucle de récupération du nom de la catégorie supérieure

  sinon catégorie niveau 2

      Boucle de récupération de la sous catégorie supérieure

      Boucle de récupération de la catégorie

sinon catégorie

Dans tous les cas, nous remplissons $categorie_tab['complet'] du nom de la catégorie

<?php
$categorie_tab=array();
$requete="SELECT * FROM categorie";
$valeur=mysql_query($requete);
$i=0;
$ligne=0;
while ($tableau=mysql_fetch_array($valeur)){
// on récupère les données de la table
// print($ligne);
if($tableau['actif']<>"N"){
$categorie_tab[$i]['uid']=$tableau['uid'];
$categorie_tab[$i]['nom']=$tableau['nom'];
$categorie_tab[$i]['description']=$tableau['description'];
$categorie_tab[$i]['attachement']=$tableau['attachement'];
$i=$i+1;
}else{
print('<br>Catégorie non active');
}
}
require('includes/stop.php');
// début du traitement des catégories - sous catégories dans le tableau
$ligne=$i;
print($ligne." lignes dans le tableau");
$i=0;
while ($i<$ligne){
if ($categorie_tab[$i]['attachement']<>0){
// vérification des sous catégories 1: ce n'est pas une catégorie
$k=$categorie_tab[$i]['attachement'];
$nom=$categorie_tab[$i]['nom'];
// on récupère attachement et vérifie si uid est effectivement avec attachement à 0
$j=0;
$l=0;
//
while ($j<$ligne){
if(($categorie_tab[$j]['uid']==$k)&&($categorie_tab[$j]['attachement']=="0")){
$l=1;
$categorie_tab[$i]['complet']= $categorie_tab[$j]['complet'];
}
$j=$j+1;
}
// si $l = 1, il s'agit bien d'une sous-catégorie de niveau 1
if ($l==1){
$categorie_tab[$i]['cat1']=$k;
$categorie_tab[$i]['cat2']=$categorie_tab[$i]['uid'];
$categorie_tab[$i]['cat3']="0";
$categorie_tab[$i]['complet']= $categorie_tab[$i]['complet']." - ".$categorie_tab[$i]['nom'];
}else{
// c'est une catégorie de niveau 2, il faut retrouver les 2 catégories supérieures
$j=0;
$l=0;
while ($j<$ligne){
if(($categorie_tab[$j]['uid']==$k)&&($categorie_tab[$j]['attachement']<>"0")){
$l=$j;
$j=$ligne;
}
$j=$j+1;
}

$categorie_tab[$i]['cat1']=$categorie_tab[$l]['attachement'];
$categorie_tab[$i]['cat2']=$categorie_tab[$l]['uid'];
$categorie_tab[$i]['cat3']=$categorie_tab[$i]['uid'];
// on recherche ensuite la catégorie
$m=0;
while ($m<$ligne){
if (($categorie_tab[$m]['uid']==$categorie_tab[$i]['cat1'])&&($categorie_tab[$m]['attachement']==0)){
$categorie_tab[$i]['complet']=$categorie_tab[$m]['nom']." - ".$categorie_tab[$l]['nom']." - ".$categorie_tab[$i]['nom'];
$m=$ligne;
}
$m=$m+1;
}
}
// fin de vérification des catégories 1
}else{
// c'est une catégorie }else{
$categorie_tab[$i]['cat1']=$categorie_tab[$i]['uid'];
$categorie_tab[$i]['cat2']=0;
$categorie_tab[$i]['cat3']=0;
$categorie_tab[$i]['complet']=$categorie_tab[$i]['nom'];
}
$i=$i+1;
}
if (isset($_POST['go'])){
$choix = $_POST['uid'];
echo"<br><b>".$choix."</b>";
}
$i=0;
$liste="<table>
<form method=\"POST\">
<p><select size=\"1\" name='uid'>";
while ($i<$ligne){
$uid= $categorie_tab[$i]['uid'];
$complet= $categorie_tab[$i]['complet'];
$liste=$liste."<option value=".$uid.">".$complet."</option>";
$i=$i+1;
}
$liste=$liste."<p><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p>
</form>
</table>
<HR>";
echo$liste;
?>

Nous avons maintenant dans un tableau avec un nombre de lignes = $ligne reprenant non seulement le 'uid', mais également le nom réel de la catégorie. Il nous reste maintenant à intégrer cette fonction dans notre formulaire.

4. Liste déroulante des différentes catégories dans un formulaire.

Maintenant que nous avons créer le tableau reprenant les différentes catégories, il nous reste à insérer ces données dans un formulaire pour afficher le nom complet de la catégorie et faire passe comme variable son numéro.

if (isset($_POST['go'])){
$choix = $_POST['uid'];
echo"<br><b>".$choix."</b>";
}
$i=0;
$liste="<table>

<form method=\"POST\">
<p><select size=\"1\" name='uid'>";
while ($i<$ligne){
$uid= $categorie_tab[$i]['uid'];
$complet= $categorie_tab[$i]['complet'];
$liste=$liste."<option value=".$uid.">".$complet."</option>";
$i=$i+1;
}
$liste=$liste."<p><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p>
</form>
</table>
<HR>";
echo$liste;

En insérant ces quelques lignes en fin de notre programme PHP, nous obtenons la liste des catégorie complète dans une liste déroulante de choix reprise de notre tableau. Il affiche également le numéro correspondant à notre choix si vous appuyez sur le bouton envoyer.

$liste est la variable utilisée pour afficher le formulaire. La première partie insère le début du formulaire. Dans la boucle While, nous reprenons les différentes valeurs comme options. Une fois que nous avons terminé de reprendre toutes les options, nous terminons notre formulaire et affichons la variable $liste contenant l'ensemble du formulaire. Pour l'instant, nous ne faisons qu'afficher le numéro de la catégorie choisie (echo"<br><b>".$choix."</b>";) en gras. 

La partie suivante va nous permettre de créer le formulaire complet pour insérer les annonces, même si nous ne gérerons pas encore les utilisateurs.

Créer son site Internet

Quelques remarques préliminaires concernant l'hébergement, le langage de programmation

Besoin d'un développement spécifique en PHP - MySQL 

Dahut.be, envisageons votre projet.

Formation FrontPage

Créer un site Internet en HTML avec FrontPage

Besoin de gérer vos stocks?

Ciel gescom Premium ou évolution, la solution PME

> 17. Modifications de tables MySQL

<15 . Gestion des catégories

Mise en ligne: 24/05/2006

YBET Informatique: formation débutant ou avancé

dans notre salle de formation ou en entreprise

Renseignements, tarifs et inscriptions sur notre page formations informatiques

Magasin Informatique YBET à Chiny

Autre formations en ligne:

Access - Excel - PowerPoint - Word - Internet - Quelques notes de la formation Ciel Comptabilité