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 :

liste deroulante qui selectionne le nombres de lignes a afficher [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut liste deroulante qui selectionne le nombres de lignes a afficher
    salut tout le monde,,
    voila mon probléme je veux utiliser une liste deroulante pou selectionner les lignes a afficher dans mon tableau (ce tableau est lié a une table mysql)

    mais quand je selectionne l'un des elements de la liste ça ne fonctionne pas

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(isset($_POST['nblignes']))
     {  
    				$query5= "SELECT code, fournisseur,delai FROM flivraison limit".$_POST['nblignes'];
    				$result_linked5= mysql_query($query5) or die(mysql_error());
     }else{
     	      $query5= "SELECT code, fournisseur,delai FROM flivraison";
    		  $result_linked5= mysql_query($query5) or die(mysql_error());
     }
    avec nblignes c'est le name que j'ai mis dans la balise select

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    ça fonction pas?? la page ne se submit pas ou il y'a une erreur.

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    salut

    je ne comprends pas ce que tu veux dire
    je te donne le code de la liste deroulante (je suis debutante en php et mysql c'est pour ça )
    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
     
    //connexion a la base de données effectuées avec succés
    //cette requete c'est pour l'affichage dans le tableau qui doit etre limités par nombres de lignes
    $query = "SELECT code, fournisseur,delai FROM flivraison";
     
    $result_linked = mysql_query($query) or die(mysql_error());
     
     
    echo"affciher    ";
     
     echo "<form name='lignes' method='post'action='".$_SERVER['PHP_SELF']."'>";
     
                     $nb=mysql_num_rows($result_linked);//je determine le nombre de lignes de la table flivraison
     
                        $p=10;//initialiser le $p a 10 lignes
    		    echo "<select name='nblignes'>";
    		    for($i=0;$i<$nb;$i++)
    		    {//on verifie que le nombre de lignes de la table n'attenit pas le $p
    		    if($nb>$p){
     
    		 	echo "<option value=".$p." >".$p."</option>";
    		 	$p=$p+5;//a chaque fois on ajoute 5
     
     
     
    		 	}
    		    }
    echo "<option value=".$nb." >".$nb."</option>";
    echo "</select>";
     echo"&nbsp;&nbsp;&nbsp;&nbsp;lignes de la table";

    j'espére que c'est plus clair comme ça

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    as-tu vérifié la valeur de $_POST['nblignes'] ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $query5 = "SELECT code, fournisseur,delai FROM flivraison";
    $clause_limit = (isset($_POST['nblignes']))? " LIMIT ".mysql_real_escape_string(intval($_POST['nblignes'])) : '';
    $query5 = $query5.$clause_limit.";";
    $result_linked5 = mysql_query($query5) or die(mysql_error().'<br />'.$query5);
    ?>

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Avec quoi tu submit t'a page.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re.
    je t'encourage à "sortir" le code html du code php.
    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
    afficher &nbsp;&nbsp;&nbsp;&nbsp;
    	<form name="lignes" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    		<select name="nblignes" onchange="submit();">
    <?php		    for($i=0; $i<$nb; $i++)
    		    {
    				if($p<$nb){ //si $p inferieur au nombre de lignes de la table
    ?>
    			<option value="<?php echo $p; ?>" ><?php echo $p; ?></option>
    <?php
    					$p = $p+5; //a chaque fois on ajoute 5
    				} // fin if
    		    } // fin for
    ?>
    			<option value="<?php echo $nb; ?>" selected="selected"><?php echo $nb; ?></option>
    		</select>
    		<noscript><!-- affichage du bouton si javascript est désactivé -->
    		<input type="submit" value="ok"/>
    		</noscript>
    	</form>
    &nbsp;&nbsp;&nbsp;&nbsp; lignes de la table

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    m4riachi

    je la submit avec la liste deroulante quand on selectionne l'un des elements la tableau sera limités en nombre de lignes
    ce code est il correct??

    jreaux62 ou est ce que je met ce bout de code je l'ai deja testé a la place de ma requete

  8. #8
    Invité
    Invité(e)
    Par défaut
    Tu avais oublié de "soumettre" le formulaire + oublié la balise </form>

    Dans mon code ci-dessus :
    -> onchange="submit();" sur le select (liste déroulante)
    -> au cas où javascript est désactivé : on affiche un bouton "ok"

    Mon code écrit ici remplace ton code
    C'est une autre façon de l'écrire, + protection contre injection sql avec mysql_real_escape_string()

  9. #9
    Invité
    Invité(e)
    Par défaut
    Voici un code complet, commenté :
    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
    <?php
    //connexion a la base de données effectuées avec succès
    // [...]
    // nombre de lignes total de la table flivraison
    $nb_query 	= "SELECT count(*) AS nb_total FROM flivraison;";
    $nb_result 	= mysql_query($nb_query) or die(mysql_error());
    $nb_row 	= mysql_fetch_array($nb_result);
    $nb_total 	= $nb_row['nb_total'];
    // initialisation ou recuperation du nombre de lignes a afficher
    if(isset($_POST['nb_lignes']) && $_POST['nb_lignes']!='') {
    	$nb_lignes = intval($_POST['nb_lignes']); // choix dans la liste deroulante
    	$clause_limit = " LIMIT ".mysql_real_escape_string($nb_lignes);
    } else {
    	$nb_lignes = $nb_total; // par defaut : toutes les lignes
    	$clause_limit = '';
    }
    // requete : affichage pour le nombre de lignes demandé
    $query5 = "SELECT code, fournisseur, delai FROM flivraison".$clause_limit.";";
    $result_linked5 = mysql_query($query5) or die(mysql_error().'<br />'.$query5);
    ?>
     
    <!-- DEBUT DU CODE HTML -->
    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	<!-- ... -->
    </head>
     
    <body>
     
    <div id="selection-nb_lignes">
    	<form name="lignes" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    		afficher <select name="nb_lignes" onchange="submit();">
    <?php		    $p = 10; //commence a 10, puis affichage de 5 en 5 jusqu'à $nb_total
    			for($i=0; $i<$nb_total; $i++)
    			{
    				while($p<$nb_total){ //tant que $p inferieur au nombre de lignes de la table
    					$sel_nb = ($nb_lignes==$p)? ' selected="selected"' : '';
    ?>
    			<option value="<?php echo $p; ?>"<?php echo $sel_nb; ?>><?php echo $p; ?></option>
    <?php
    					$p = $p+5; //a chaque fois on ajoute 5
    				} // fin while
    			} // fin for
    					$sel_nb = ($nb_lignes==$nb_total)? ' selected="selected"' : '';
    ?>
    		<option value="<?php echo $nb_total; ?>"<?php echo $sel_nb; ?>><?php echo $nb_total; ?></option>
    		</select> lignes de la table
    		<noscript><!-- affichage du bouton si javascript est désactivé -->
    		<input type="submit" value="ok"/>
    		</noscript>
    	</form>
    </div>
     
    </body>
    </html>
    Dernière modification par Invité ; 18/08/2011 à 15h21.

  10. #10
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    merci bcp pour ta reponse

    ça marche ,, mais juste le 10 lignes quand je clique il n'affiche pas 10 lignes du tableau

  11. #11
    Invité
    Invité(e)
    Par défaut
    Quel est TON code (php), + le code html généré ?

    Citation Envoyé par manu404 Voir le message
    (je suis debutante en php et mysql c'est pour ça )
    PS : j'ai mis des commentaires pour que tu comprennes le code (et le raisonnement)
    Si tu fais juste un "copier-coller", tu n'apprendras pas.

  12. #12
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    j'ai laissé le méme code de toute a l'heure j'ai bien sur modifier ce que tu m'as de mandé :
    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
     
    $query = "SELECT code, fournisseur,delai FROM flivraison";
     
    $result_linked = mysql_query($query) or die(mysql_error());
    		   echo"affciher&nbsp;&nbsp;&nbsp;&nbsp;";	
    		   echo "<form name='lignes' method='post' action='".$_SERVER['PHP_SELF']."'>";
    		   $nb=mysql_num_rows($result_linked);
    		   $p=10;
    		    echo "<select name='nblignes' onchange=\"submit();\">";
    		    for($i=0;$i<$nb;$i++)
    		    {
    		     if($nb>$p){
     
    		 	echo "<option value=".$p." >".$p."</option>";
    		 	$p=$p+5;
     
     
     
    		 	}
    		    }
         echo "<option value=".$nb." >".$nb."</option>";
         echo "</select>";
         echo"<noscript><!-- affichage du bouton si javascript est désactivé -->";
         echo"<input type=\"submit\" value=\"ok\"/>";
         echo"</noscript>";
         echo"</form>";
         echo"&nbsp;&nbsp;&nbsp;&nbsp;lignes de la table";
     
     
     
     
    $query5 = "SELECT code, fournisseur,delai FROM flivraison";
    $clause_limit = (isset($_POST['nblignes']))? " LIMIT ".mysql_real_escape_string(intval($_POST['nblignes'])) : '';
    $query5 = $query5.$clause_limit.";";
    $result_linked5 = mysql_query($query5) or die(mysql_error().'<br />'.$query5);
    et aprés ça,, le code qui permet d'afficher la table dans un tableau ,,

    la ligne 10 quand je clique sur 10 ne marche pas ne soumet pas le formulaire

  13. #13
    Invité
    Invité(e)
    Par défaut
    Je t'ai fait un code complet ici.
    Pourquoi ne l'utilises-tu pas ?

    Là, tu es en train de tout mélanger ...

  14. #14
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    Re,,

    je peux qu'inclure du php c'est a dire méme le html je l'inclus dans php parce que je travaille sur une partie d'un code (module) j'ai pas le droit de modifier quoi que ce soit sauf ce petit code ,, donc je ne peux pas fermer et ouvrir <?php et ?>
    a ma guise si non ça va générer beaucoup d'erreurs dans le reste du code

    j'ai donc inclut ton code comme suit
    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
     
    $nb_query 	= "SELECT count(*) AS nb_total FROM flivraison";
    $nb_result 	= mysql_query($nb_query) or die(mysql_error());
    $nb_row 	= mysql_fetch_array($nb_result);
    $nb_total 	= $nb_row['nb_total'];
     
     
    //$query = "SELECT code, fournisseur,delai FROM flivraison";
     
    //$result_linked = mysql_query($query) or die(mysql_error());
    		   echo"affciher&nbsp;&nbsp;&nbsp;&nbsp;";	
    		   echo "<form name='lignes' method='post' action='".$_SERVER['PHP_SELF']."'>";
    		  // $nb=mysql_num_rows($result_linked);
    		   $p=10;
    		    echo "<select name='nblignes' onchange=\"submit();\">";
    		    for($i=0; $i<$nb_total; $i++)
    		    {
    		    	while($p<$nb_total){ //tant que $p inferieur au nombre de lignes de la table
    					$sel_nb = ($nb_lignes==$p)? ' selected="selected"' : '';
     
     
    		 	echo "<option value=".$p."".$sel_nb." >".$p."</option>";
     
    		 	$p=$p+5;
    		 	}//fin while
     
    		    }//fin for
     
    		    $sel_nb = ($nb_lignes==$nb_total)? ' selected="selected"' : '';
         echo "<option value=".$nb_total."".$sel_nb." >".$nb_total."</option>";
         echo "</select>";
         echo"<noscript><!-- affichage du bouton si javascript est désactivé -->";
         echo"<input type=\"submit\" value=\"ok\"/>";
         echo"</noscript>";
         echo"</form>";
         echo"&nbsp;&nbsp;&nbsp;&nbsp;lignes de la table";
     
     
    if(isset($_POST['nb_lignes']) && $_POST['nb_lignes']!='') 
    {
    	$nb_lignes = intval($_POST['nb_lignes']);
    	$clause_limit = " LIMIT ".mysql_real_escape_string($nb_lignes);
    } else {
    	$nb_lignes = $nb_total; // par defaut : toutes les lignes
    	$clause_limit = '';
    // requete : affichage pour le nombre de lignes demandé
    $query5 = "SELECT code, fournisseur, delai FROM flivraison".$clause_limit.";";
    $result_linked5 = mysql_query($query5) or die(mysql_error().'<br />'.$query5);
    }
    merci de m'avoir aidé

  15. #15
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    le 10 ne marche toujours pas le probléme peut etre dans la boucle

  16. #16
    Invité
    Invité(e)
    Par défaut
    Si tu dois utiliser des echo, et pour éviter de te tromper dans les " ' \" ... :
    - garde les " pour le code html : <select name="nblignes" ....
    - écrit : echo '........';
    - on peut écrire plusieurs lignes dans un echo

    -> Apostrophes ou guillemets : lesquels choisir ?

    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
    <?php
    		   echo 'affciher&nbsp;&nbsp;&nbsp;&nbsp;';	
    		   echo '<form name="lignes" method="post" action="'.$_SERVER['PHP_SELF'].'">';
    		  // $nb=mysql_num_rows($result_linked);
    		   $p=10;
    		    echo '<select name="nblignes" onchange="submit();">';
    		    for($i=0; $i<$nb_total; $i++)
    		    {
    		    	while($p<$nb_total){ //tant que $p inferieur au nombre de lignes de la table
    					$sel_nb = ($nb_lignes==$p)? ' selected="selected"' : '';
     
     
    		 	echo '<option value="'.$p.'"'.$sel_nb.'>'.$p.'</option>';
     
    		 	$p=$p+5;
    		 	}//fin while
     
    		    }//fin for
     
    		    $sel_nb = ($nb_lignes==$nb_total)? ' selected="selected"' : '';
    		echo '<option value="'.$nb_total.'"'.$sel_nb.'>'.$nb_total.'</option>';
    		echo '</select>
    			<noscript><!-- affichage du bouton si javascript est désactivé -->
    			<input type="submit" value="ok"/>
    			</noscript>
    			</form>
    			&nbsp;&nbsp;&nbsp;&nbsp;lignes de la table
    			';
     ?>
    Citation Envoyé par manu404 Voir le message
    le 10 ne marche toujours pas
    -> peux-tu afficher le code html généré (code source de la page) ?

  17. #17
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    merci beaucoup ,,
    ce code marche pour les autres nombres de lignes
    mais le meme probléme reste toujours présent:
    quand je clique sur 10 rien ne se passe ne m'affiche pas les 10 1 éres lignes du tableau

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(isset($_POST['nb_lignes']) && $_POST['nb_lignes']!='') 
    {
    	$nb_lignes = intval($_POST['nb_lignes']);
    	$clause_limit = " LIMIT ".mysql_real_escape_string($nb_lignes);
    } else {
    	$nb_lignes = $nb_total; // par defaut : toutes les lignes
    	$clause_limit = '';
    -> DOIT ETRE ECRIT AVANT LE RESTE (avant le formulaire, en début de page)

    Pourtant, il te suffisait de suivre ce que j'avais écrit, sans changer l'ordre ...

  19. #19
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2011
    Messages : 18
    Par défaut
    l'acolade de else se ferme aprés quoi?

  20. #20
    Invité
    Invité(e)
    Par défaut
    Exact. il manquait l'accolade :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['nb_lignes']) && $_POST['nb_lignes']!='') 
    {
    	$nb_lignes = intval($_POST['nb_lignes']); // choix dans la liste deroulante
    	$clause_limit = " LIMIT ".mysql_real_escape_string($nb_lignes);
    } else {
    	$nb_lignes = $nb_total; // par defaut : toutes les lignes
    	$clause_limit = '';
    }
    Tu es sûre de comprendre le code ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2010] liste deroulante qui n'affiche pas les lignes vides
    Par RodKAZ dans le forum IHM
    Réponses: 8
    Dernier message: 22/11/2012, 10h15
  2. fonction qui renvoie le nombre de ligne de ma feuille
    Par milca dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2007, 13h25
  3. Réponses: 3
    Dernier message: 17/08/2007, 16h17
  4. générer des listes deroulantes qui decoule d'1 autre liste
    Par amarcil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/04/2006, 10h44
  5. formulaire liste deroulante qui redirectionne
    Par gandoulfe dans le forum Langage
    Réponses: 3
    Dernier message: 08/03/2006, 18h16

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