IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Liste déroulante qui ne fonctionne pas -_-'


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Liste déroulante qui ne fonctionne pas -_-'
    Bonjour !

    Je précise d'abord que j'ai déja regardé des tutoriels, mais que je n'ai pas reussit à résoudre mon problème. J'espère que vous pourrez m'aider

    Je vous montre mon code, je voulais en fait...
    qu'a partir d'une liste déroulante (catégorie), il s'affiche les produits faisant partie de cette catégorie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    				<table align="right" width="400%">
    						<tr><td align="center" bgcolor="#E7D263"><a href="form_produit.php">Ajouter un produit</a>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp; <a href="modif_produit.php">Modifier un produit</a> &nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;<b>Supprimer un produit</b></td>
    						</tr>
    				</table>
    			</font>
     
    			<br><br><br>
     
    <div align="left"><font color="#FF6633"><b>- Produit -</b></font></div>
     
    <BR><BR><BR>
     
     
    				  Cette section permet<b> de supprimer</b> des produits. ATTENTION ! une actu une fois supprimée, ne pourra plus être récupéré
    				    <br> <br>  <br> <br>
     
    					Pour cette suppression, vous devez pour commencer sélectionner la catégorie du produit à supprimer
    					<br><br>
     
    <? include "../Includes/base.php"; ?>
     
     
    <?
    //@ pour desactiver l'erreur qui apparait en local
    $categ=@$_POST['categ'];
     
     
    // ----------------- RECUPERE POUR LA LSITE DEROULABNTE LES DONNES CATEGORIES ---------------------------------
     
      $cat="select * from categorie ";
      $categorie=mysql_query($cat);
     
     
      echo "<div align='center'><select name='categ' onchange='form1.submit()'>";
    	  while ($row=mysql_fetch_array($categorie))
    	  //echo "<option value=".$row["id_categ"].">".$row["lib_categ"]."</option>";
    	{
    			  echo "<option value=".$row["id_categ"];
     
    		  if ($row["id_categ"]==$categ)
    					{
    					echo " SELECTED";
    					}
     
    			echo ">".$row["lib_categ"]."</option>";
     
    	}
    	  echo "</select></div>";
     
     
     
    //si ma valeur n'est pas nulle, cad qu'on a selectionner une catégorie
    if (@$_POST['categ']!="")
    {  
     
    		$req="select * from produit p, categorie c where c.id_categ=p.id_categ";
    		$prod=mysql_query ($req); 
    		$nb=mysql_num_rows($prod);
     
     
    		 //si il n'y a aucun produits pour cette occasion, alors :
    			if ($nb==0)
    			{
    			echo " Il n'y a aucun produit pour cette catégorie =) ";
    			echo "<br><br><div align='center'><img src='Images/aliment_74.gif</div>";
    	  		}
    			else
    			{
    			// ----------------- MENU DU TABLEAU ---------------------------------------------------------------
    						echo "<br><br><TABLE width='88%' height='100%'>";
    									echo "<TR bgcolor='#833623' bordercolor='#333333' >";
    											echo "<TD width='12%' height='36' align='center' ><font color='#FFFFFF'>INDENTIFIANT</font></TD>";
    											echo "<TD width='54%' height='36' align='center'><font color='#FFFFFF'>DESIGNATION</font></TD>";
    											echo "<TD width='9%' height='36' align='center'><font color='#FFFFFF'>POIDS</font></TD>";
    											echo "<TD width='10%' height='36' align='center'><font color='#FFFFFF'>PRIX</font></TD>";
    											echo "<TD width='15%' height='36' align='center'><font color='#FFFFFF'>-</font></TD>";
    									echo "</TR>";
     
    						// ------------------- CONTENU DU TALBEAU ---------------------------------------------------------
     
    							while ($row=mysql_fetch_array($prod))
    							{
    									$id=$row['ref_pdt'];
    									echo "<TR><TD>".$row['ref_pdt']."</TD>";
    									echo "<TD>".$row['des_pdt']."</TD>";
    									echo "<TD>".$row['poid_pdt']."</TD>";
    									echo "<TD>".$row['px_ht']."</TD>";
    									echo "<TD ALIGN='center'> <a href='enreg_supp_actu.php?id=$id.'>Supprimer</a></TD></TR>";
    							}
     
     
    			}
     
    	 } 
    		echo "</TABLE>";
    A la section de la liste déroulante, il ne m'affiche pas le tableau correspodant,e t ne m'affiche pas d'erreur, donc j'en deduis que ça ne fait pas correctement la section dans ma liste déroulante... mais ou est l'erreur? =)

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Dans un premier temps, plutôt que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $categ=@$_POST['categ']; 
    ...
    if (@$_POST['categ']!="")
    Je te suggère d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $categ = empty($_POST['categ']) ? NULL : $_POST['categ']; // Ici, il serait encore mieux et plus efficace d'utiliser un if-else
    ...
    if (!empty($categ))
    Concernant ton problème actuel, tu as oublié d'utiliser la valeur de ta liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req='SELECT *
          FROM produit p, categorie c
          WHERE c.id_categ=p.id_categ
             AND c.id_categ = '.$categ;

  3. #3
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    De première vu tout est ok .
    peut être tes variables sont vides .vérifie les.je te propose aussi de supprimer
    cette ligneensuite de tester de nouveau
    la succession d'évènement que nous subissons toute notre vie n'est qu'un phénomène de compensation dont la nature en est l'arbitre.[Inéluctabilité de la nature ] Polace

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Effectivement l'erreur de ma requête était vraiment évidente -_- ... j'suis passée totalement à coté, désolé




    Citation Envoyé par Kirkis
    Salut

    Dans un premier temps, plutôt que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $categ=@$_POST['categ']; 
    ...
    if (@$_POST['categ']!="")
    Je te suggère d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $categ = empty($_POST['categ']) ? NULL : $_POST['categ']; // Ici, il serait encore mieux et plus efficace d'utiliser un if-else
    ...
    if (!empty($categ))
    Ptite question avant de cloturer le sujet, quelle est la différence avec ce que j'ai tapé? pourquoi ceci plutôt que l'autre?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Le @ s'occupe de couper impoliment le sifflet à la sortie d'erreurs, tandis que ma suggestion gère réellement les erreurs.

    Au final, je ne crois pas qu'il y ait de différence réelle dans la sortie, mais tu en as un plus grand contrôle (i.e. tu peux mettre quelque chose de ta convenance à la place de NULL).

    De manière générale, il est préférable de trouver une solution alternative à l'utilisation de @.

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    D'accord, merci de vos réponses :)

    Je mets le sujet en résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Listes liées qui ne fonctionnent pas sous IE 8
    Par unapologetic dans le forum AJAX
    Réponses: 4
    Dernier message: 27/02/2013, 11h04
  2. Réponses: 9
    Dernier message: 06/04/2011, 17h13
  3. Réponses: 33
    Dernier message: 14/04/2010, 10h46
  4. Réponses: 6
    Dernier message: 26/08/2009, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo