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

PHP & Base de données Discussion :

Affichage dans liste deroulante


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 38
    Par défaut Affichage dans liste deroulante
    Bonjour

    je sèche sur ce petit problème.
    j ai une liste déroulante qui ce remplie en fonction des elements dans ma base (jusque la ca va)
    je voudrai que dans cette même liste déroulante les résultats qui s affiche ce font en fonction d 'un nombre max, en gros si c est supérieur au max il ne s affiche pas dans la liste et si c est inférieur ca s affiche.

    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
     
    <?php
    //recup des differents postes
    $result1 = mysqli_query($link, "SELECT * FROM poste WHERE Id_circuit=$Id_circuit1 ORDER BY Num_poste Asc");
    //printf("Select a retourné %d lignes.\n", mysqli_num_rows($result1));	
     
     
     
    echo"<select name='liste_Poste' OnChange='epreuve()' class='bouton1' >";
    echo"<option value=''>-= Selectioner un Poste =-</option>";
     
    while($data = mysqli_fetch_array($result1)) {
    $Id_poste = $data['Id_poste'];
    $Num_poste = $data['Num_poste'];
    $Id_circuit = $data['Id_circuit'];
    $Max =$data['Max'];
     
     
    	 //La commence mon problème
    	//affichage des postes restant en fonction du max
    	$requete = mysqli_query($link, "$link, "select * from inscription WHERE Id_epreuve=$Id_circuit Group By Num_poste");
    	$resultat = mysqli_num_rows($requete);
    		echo "<font color=\"#000000\">".$resultat."</font>";
    		// if ($resultat >= $Max) {
    		// echo "<font color=\"#000000\">".$resultat."</font>";
    		// }
     
    echo "<option value=\"$Id_poste\" ";
    if ($Id_poste == $Id_poste) { echo "Selected"; }
    echo ">$Num_poste</option>";
    }
    echo"</select>";	
    ?>
    je suis sur qu il a moyen de codé ca plus simplement mais pour le momment ce n est pas grave c est juste pour faire un 1er test.

    si qq un peut me venir en aide ??
    merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    Citation Envoyé par steph49 Voir le message
    c est supérieur au max il ne s affiche pas
    si quoi est supérieur à la données "max" ?
    et dans votre code vous avez des postes et des inscriptions, qu'est ce que vous ne voulez pas afficher ?

    quand vous souhaitez générer du code html avec plusieurs imbrications, je vous conseille de commencer par faire un petit exemple en html fixe pour bien voir l'objectif que le code php devra générer.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 38
    Par défaut
    avec ce code ma liste deroulante fonctionne bien

    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
    <?php
    //recup des differents postes
     
    $result1 = mysqli_query($link, "SELECT * FROM poste WHERE Id_circuit=$Id_circuit1 ORDER BY Num_poste Asc");
    echo"<select name='liste_Poste' OnChange='epreuve()' class='bouton1' >";
    echo"<option value=''>-= Selectioner un Poste =-</option>";
     
    		while($data = mysqli_fetch_array($result1)) {
    				$Id_poste = $data['Id_poste'];
    				$Num_poste = $data['Num_poste'];
    				$Id_circuit = $data['Id_circuit'];
    				$Max =$data['Max'];								
    			echo "<option value=\"$Id_poste\" ";
    				if ($Id_poste == $Id_poste) { echo "Selected"; }
    				echo ">$Num_poste</option>";
    				}
    				echo"</select>";	
    ?>
    ce que souhaiterai faire c est que si ma valeur $Max par rapport au Num_poste est atteinte en fonction des inscription dans ma table "inscription"
    la variable $Num_poste ne s affiche pas dans ma liste déroulantes alors que si $max n est pas atteint $Num_poste s affiche dans la liste deroulante.

    j ai modifier un peut mon code comme ceci

    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
    <?php
    //recup des differents postes
     
    $result1 = mysqli_query($link, "SELECT * FROM poste WHERE Id_circuit=$Id_circuit1 ORDER BY Num_poste Asc");
    //printf("Select a retourné %d lignes.\n", mysqli_num_rows($result1));	
     
    	echo"<select name='liste_Poste' OnChange='epreuve()' class='bouton1' >";
    	echo"<option value=''>-= Selectioner un Poste =-</option>";
     
    		while($data = mysqli_fetch_array($result1)) {
    		       $Id_poste = $data['Id_poste'];
    		       $Num_poste = $data['Num_poste'];
    			$Id_circuit = $data['Id_circuit'];
    			$Max =$data['Max'];								
    		echo "<option value=\"$Id_poste\" ";
    		if ($Id_poste == $Id_poste) { echo "Selected"; }
     
    //affichage des poste restant en fonction du max
    $requete = mysqli_query($link, "select * from inscription WHERE Id_epreuve=$Id_circuit Group By Num_poste");
    $resultat = mysqli_num_rows($requete);
    		//echo "<font color=\"#000000\">".$Max."</font>";
    		if ($resultat >= $Max) {
    			 $Num_poste="";
    		} else {
     
    		    echo ">$Num_poste</option>";
    		}
    		}
    		echo"</select>";
     
    ?>
    avec celui ci je pense que je ne suis pas loin de la solution je continue mes tests.

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Utilises l'argument SQL LIMIT. rien ne t'empêche de mettre en paramètre de LIMIT la valeur $max
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 38
    Par défaut
    j ai modifer mon code par celui ci

    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
    <?php
    //recup des differents postes
     
    $result1 = mysqli_query($link, "SELECT * FROM poste WHERE Id_circuit=$Id_circuit1 ORDER BY Num_poste Asc");
    //printf("Select a retourné %d lignes.\n", mysqli_num_rows($result1));	
     
    echo"<select name='liste_Poste' OnChange='produit()' class='bouton1' >";
    echo"<option value=''>-= Selectioner un Poste =-</option>";
     
    while($data = mysqli_fetch_array($result1)) {
    $Id_poste = $data['Id_poste'];
    $Num_poste = $data['Num_poste'];
    $Id_circuit = $data['Id_circuit'];
    $Max = $data['Max'];		
     
    //affichage des poste restant en fonction du max
    $requete = mysqli_query($link, "SELECT * FROM inscription WHERE Num_poste='$Num_poste'");
    $resultat = mysqli_num_rows($requete);
    //printf("Select a retourné %d lignes.\n", mysqli_num_rows($resultat));
    //echo "<font color=\"#000000\">".$resultat."</font>";
    if ($resultat >= $Max) {
    	 $Num_poste = NEXT($result1);
     
    // echo "<option value=\"$Id_poste\" ";
    // if ($Id_poste == $Id_poste) { echo "Selected"; }
    	// echo ">$Num_poste </option>";	
    // echo"</select>";	
    } else {		
     
    echo "<option value=\"$Id_poste\" ";
    if ($Id_poste == $Id_poste) { echo "Selected"; }
    	echo ">$Num_poste</option>";
    }
     
    }
    echo "</select>";
     
     
    ?>
    et apparemment ça fonctionne, du moins ca affiche ce que je veux pour le moment.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Bien que tu t'en sois sorti, pour l'histoire de LIMIT, voici un exemple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM poste WHERE Id_circuit=$Id_circuit1 ORDER BY Num_poste Asc LIMIT 5"
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. Affichage d'input selon clic dans liste deroulante
    Par mtoboz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/09/2014, 10h46
  2. Réponses: 2
    Dernier message: 24/11/2006, 10h24
  3. Affichage dans liste modifiable
    Par puppusse79 dans le forum Access
    Réponses: 2
    Dernier message: 24/04/2006, 17h17
  4. Lecture choix dans liste deroulante
    Par angelevil dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 16h20
  5. Réponses: 5
    Dernier message: 25/10/2005, 20h51

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