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 :

Trier mes données dans un tableau avec des options


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut Trier mes données dans un tableau avec des options
    Bonjour,
    Je me permets de poster ici pour avoir quelques lumières.
    Je souhaite présenter dans un tableau les commandes en cours.
    Avec le fournisseur, la référence du produit, l'année ...

    L'affichage est ok, j'arrive aussi a afficher le nom / prenom du client en fonction de son id (chose sur laquelle j'ai bloqué un petit moment (novice inside).

    Maintenant je souhaite ajouter des options de tri à mon tableau.
    1. n'afficher que les commandes du fournisseur X, avec une liste déroulante, ca c'est ok.
    Par contre quand je souhaite trier et par fournisseur et par année, les choses se compliquent.

    Voici pour moi l'algorythmique de la chose.

    Si le fournisseur est défini
    {
    je test les variables pour vérifier.
    requete sql de selection des commandes avec le fournisseur x.
    }
    ET SI Année est définie
    {
    je test les variables pour vérifier.
    requete sql de selection des commandes avec le fournisseur x ET l'année X
    }
    Sinon
    {
    Afficher le choix de l'année
    }
    FinSi

    Sinon
    {
    je montre la liste déroulante pour qu'on puisse choisir le fournisseur
    }
    FIN
    Voici mon code pour le formulaire de départ :
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
     
    <link href="../../style.css" rel="stylesheet" type="text/css" />
    <form action="?action=commande_consulter_1" method="post" onSubmit="return checkrequired(this)">
    <table align="left">
    <tr>
    	<td class="colone_b Style1"></td>
    	<td class="colone_a Style1">Consultation / Recherche Cmdes.
     
              <input type="text" name="Mot" size="15">
              <input type="submit" value="Rechercher" alt="Lancer la recherche!">
    	<br>
    	<br>	
    <?php
    ////////////////////////////////////////////////////////////////
    // définir le jour en cours.
    $jour = date('Y-m-d');
     
    ////////////////////////////////////////////////////////////////
    // sélectionner les rdv.
    $totalcmde=mysql_query('SELECT COUNT(*) AS total FROM commandes WHERE statut="" '); 
    $donnees_totalcmde=mysql_fetch_assoc($totalcmde); 
    $totalcmde=$donnees_totalcmde['total']; 
    echo 'TOTAL DES COMMANDES EN COURS : '.$totalcmde.'<br>';
     
    /* fonction pour les commandes terminées */
    $totallivree=mysql_query('SELECT COUNT(*) AS total FROM commandes WHERE statut="livre" '); 
    $donnees_totallivree=mysql_fetch_assoc($totallivree); 
    $totallivree=$donnees_totallivree['total']; 
    echo 'Commandes livrées : '.$totallivree.'<br>';
     
    echo '------------------------------<br>';
    echo 'Actions : <br>';
    echo '<a href="clients.php?action=consulter_rdv&condition=cejour">Afficher les commandes terminées / livrée </a><br>';
    echo '<a href="clients.php?action=consulter_rdv&condition=cejour">Afficher les commandes qui doivent arriver </a><br>';
     
    ///////////////////////////////////////////////
    // Fonction d'affichage de tous les rendezvous
    ///////////////////////////////////////////////
    if (isset($_POST['id'])) afficher_rdv($_POST['id']);
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM commandes'); 
    $donnees_total=mysql_fetch_assoc($retour_total); 
    $total=$donnees_total['total']; 
    $messagesParPage=10; 
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    //Fonction de calcul pour la pagination.
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    //Listing des conditions //
    if ((empty($_GET["condition"])))
    	{
    		$select = '     
    	SELECT    
    	commandes.id,		
    	commandes.idfournisseur,
    	commandes.idannee,
    	commandes.refproduit,
    	commandes.type,
    	commandes.taille,
    	commandes.couleur,
    	commandes.accessoires,   	
    	commandes.informations,
    	commandes.datelivraison,
    	commandes.collaborateur,
    	commandes.magasin,
    	commandes.motif,
    	commandes.idclient,
    	commandes.datecommande				
    				FROM commandes
                    ORDER BY id ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
                    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
                    $total = mysql_num_rows($result);
                    echo '';	
     
     
    				//INNER JOIN clients ON rdv_date.client = clients.id
    	}
     
     
     
    ?>
    <hr />
     
    <br>
    Options de Tri pour les Commandes : <br><br>
    <form action="commande_consulter_1.php" method="post">
    1. Sélectionner le fournisseur.
     
    <?
    /* 1. Sélectionner le fournisseur. */
    echo '<select name="fournisseur">';
    mysql_select_db('gestion',$db); 
    $SQL = "SELECT id,nom FROM fournisseur";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
    echo "<option value=".$val["id"].">".$val["nom"]."</option>\n";
    }
    echo '</select>';
     
    echo '<input type="submit" Value="Trier"><br>';
    ?>
     
    2. Sélectionner l'année<br>
    3. Sélectionner la référence.<br>
    4. Sélectionner la taille.<br>
    5. Sélectionner le coloris.<br>
    6. Sélectionner le type.<br>
    <br>
    <br>
     
    <?
    /* Fonction de Tri pour le tableau */
     
     
    /* 2. Sélectionner l'année< */
    /* 3. Sélectionner la référence.< */
    /* 4. Sélectionner la taille. */
    /* 5. Sélectionner le coloris.< */
    /* 6. Sélectionner le type.< */
    /* Fin de la fonction de recherche des commandes. */
     
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
        echo '<table width="100%" class="client" border="0" cellspacing="0" cellpadding="0">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr class="toprow">';
    		echo '<td class="toprow"><b><u>N° Cmde  </u><br></td>';
            echo '<td class="toprow"><b><u>Fournisseur</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Référence</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Taille</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Type</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Couleur</u></b> -  </td>';
     
            echo '<td class="toprow"><b><u>Le Client</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Date Cmde</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Date Livraison</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Magasin</u></b> -  </td>';
     
     
    		echo '<td class="toprow"><b><u>Modifier</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Consulter</u></b> -  </td>';
            echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
     
     
    while($row = mysql_fetch_array($result)) 
    	{
     
     
    		/* Requete pour la sélection des données clients dans la table Client suivant IdCLIENT de la table commande */
    		$client2=mysql_query('SELECT 	
    		nom, prenom, nomm
    		FROM clients
    		WHERE id='.$row['idclient'].'
    		;')
    		or die('<span style="color:#F00;">Erreur lors d\'une requette MYSQL !<br />
    		<img src="imgs/messagebox_critical.png" alt="ERREUR" />
    		l\'erreur s\'est produite à la ligne : <u>'.__LINE__.'</u>, dans le fichier <u>"'.
    		__FILE__.'"</u>.</span><br />'.mysql_error());		
    		$infoclient=mysql_fetch_array($client2);
    		/* FIN */
     
     
    		/* Requete pour la sélection des données clients dans la table Client suivant IdCLIENT de la table commande */
     
    	$fournisseur=mysql_query('SELECT 	
    		nom
    		FROM fournisseur
    		WHERE id='.$row['idfournisseur'].'
    		;')
    		or die('<span style="color:#F00;">Erreur lors d\'une requette MYSQL !<br />
    		<img src="imgs/messagebox_critical.png" alt="ERREUR" />
    		l\'erreur s\'est produite à la ligne : <u>'.__LINE__.'</u>, dans le fichier <u>"'.
    		__FILE__.'"</u>.</span><br />'.mysql_error());		
    		$infofournisseur=mysql_fetch_array($fournisseur);
    		/* FIN */
     
     
    /* Les Données du Tableau */
            echo '<tr>';
            echo '<td class="leftcol"><div class="intro">'.$row["id"].'</div></td>';
            echo '<td class="data"><div class="intro">'.$infofournisseur["nom"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["refproduit"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["taille"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["type"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["couleur"].'</div></td>';		
            echo '<td class="data"><div class="intro">'.$row["idclient"].'-- '.$infoclient["nom"].' --'.$infoclient["prenom"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["datecommande"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["datelivraison"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["magasin"].'</div></td>';
     
    		//LIENS
    		echo '<td class="data"><div class="intro"><a href="clients.php?action=consulter_rdv_details&id='.$row["id"].'">Modifier</a></div></td>';
    		echo '<td class="data"><div class="intro"><a href="clients.php?action=consulter_rdv_details&id='.$row["id"].'">Consulter</a></div></td>';
            echo '</tr>'."\n";
    		}
    	}
     
        echo '</table>'."\n";
    	echo '' . $total .' Commandes sur cette page sur un total de ' .$totalcmde.' Commandes';
        // fin du tableau.
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
     
    echo ' <a href="commandes.php?action=commande_consulter&page='.$i.'">'.$i.'</a> ';
     
         }
    }
    echo '</p>';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>        
    </td>
    </tr>
    <tr>
    <td></td>
     
    </form>
    Et le formulaire qui va traiter avec l'année, la référence produit ...

    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
     
    <?
    /*Récupération des anciennes fonctions de la page pour le tri ET la pagination. */
    ////////////////////////////////////////////////////////////////
    // définir le jour en cours.
    $jour = date('Y-m-d');
     
    ////////////////////////////////////////////////////////////////
    // sélectionner les rdv.
    $totalcmde=mysql_query('SELECT COUNT(*) AS total FROM commandes WHERE statut="" '); 
    $donnees_totalcmde=mysql_fetch_assoc($totalcmde); 
    $totalcmde=$donnees_totalcmde['total']; 
    echo 'TOTAL DES COMMANDES EN COURS : '.$totalcmde.'<br>';
     
    /* fonction pour les commandes terminées */
    $totallivree=mysql_query('SELECT COUNT(*) AS total FROM commandes WHERE statut="livre" '); 
    $donnees_totallivree=mysql_fetch_assoc($totallivree); 
    $totallivree=$donnees_totallivree['total']; 
    echo 'Commandes livrées : '.$totallivree.'<br>';
     
    echo '------------------------------<br>';
    echo 'Actions : <br>';
     
     
    ///////////////////////////////////////////////
    // Fonction d'affichage de tous les rendezvous
    ///////////////////////////////////////////////
    if (isset($_POST['id'])) afficher_rdv($_POST['id']);
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM commandes'); 
    $donnees_total=mysql_fetch_assoc($retour_total); 
    $total=$donnees_total['total']; 
    $messagesParPage=10; 
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    //Fonction de calcul pour la pagination.
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
    /* Fin du Code qui ne changera pas*/ 
     
     
    //////////////////////////////////////////
    /////////////////////////////////////////
    /* FONCTIONS DE TRIAGE                          */
    ///////////////////////////////////////
    //////////////////////////////////////
     
    if (isset($_POST['fournisseur']))
    	{
    	/* Fournisseur définie */
    	echo 'fournisseur défini <br> Donc il faut choisir l annee Svp';
    	//////////////////////
     
    	/* Test des Variables Fournies par le formulaire*/ 
    	echo '<br>Id fournisseur : ';
    	echo '' .$_POST['fournisseur']. '<br>';
    	$fournisseur = $_POST['fournisseur'];
    	echo '<br>$fournisseur = ';
    	echo $fournisseur;
    	echo '<br>';
    	//////////////////////
     
    	/* requete SQL avec le fournisseur */
    	$select = '     
    	SELECT    
    	commandes.id,		
    	commandes.idfournisseur,
    	commandes.idannee,
    	commandes.refproduit,
    	commandes.type,
    	commandes.taille,
    	commandes.couleur,
    	commandes.accessoires,   	
    	commandes.informations,
    	commandes.datelivraison,
    	commandes.collaborateur,
    	commandes.magasin,
    	commandes.motif,
    	commandes.idclient,
    	commandes.datecommande				
    	FROM commandes
    	WHERE commandes.idfournisseur = '.$fournisseur.'
        ORDER BY id ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
        $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
        $total = mysql_num_rows($result);
        echo 'Tri par Fournisseur';	
     
    	//////////////////////
    	/* ANNEE */
     
    		if (isset($_POST['annee']))
    			{
     
    				/* Fournisseur définie */
    				echo 'Année déja définie, sélectionnez donc la référence produit';
    				/* TEST VARIABLE FRS */
    				echo '<br>test variable fournisseur si l annee est definie. ';
    				echo $fournisseur;
     
    				//////////////////////
     
    				/* Test des Variables Fournies par le formulaire*/ 
    				echo '<br>Id ANNEE : ';
    				echo '' .$_POST['annee']. '<br>';
    				$annee = $_POST['annee'];
    				echo '<br>$annee = ';
    				echo $annee;
    				echo '<br>';
    				$fournisseur ='';
    				//////////////////////
     
    				/* requete SQL avec le fournisseur */
    				$select = '     
    				SELECT    
    				commandes.id,		
    				commandes.idfournisseur,
    				commandes.idannee,
    				commandes.refproduit,
    				commandes.type,
    				commandes.taille,
    				commandes.couleur,
    				commandes.accessoires,   	
    				commandes.informations,
    				commandes.datelivraison,
    				commandes.collaborateur,
    				commandes.magasin,
    				commandes.motif,
    				commandes.idclient,
    				commandes.datecommande				
    				FROM commandes
    				WHERE commandes.idfournisseur = '.$fournisseur.'
    				WHERE commandes.idannee = '.$fournisseur.'
    				ORDER BY id ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
    				$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    				$total = mysql_num_rows($result);
    				echo 'Tri par Fournisseur ET par Annee';	
    				//////////////////////FIN REQUETE
     
    			}
    		else
    			{
    				/* TEST VARIABLE FRS */
    				echo '<br>test variable fournisseur avant l envoi du formulaire avec l annee. ';
    				echo $fournisseur;
     
     
    				/* Afficher la liste déroulante avec la liste des annees */
    				echo '<form action="commandes.php?action=commande_consulter_1" method="post">';
    				echo "<div align='left'>2. Sélectionnez l'annee ";
    				/* 1. Sélectionner le l'annee. */
     
    					/* le fournisseur na pas été sélectionné donc on affiche le formulaire */
    					echo '<select name="annee">';
    					mysql_select_db('gestion',$db); 
    					$SQL = "SELECT id,annee from ANNEE";
    					$res = mysql_query($SQL);
    					while($val=mysql_fetch_array($res)) 
    						{
    							echo "<option value=".$val["id"].">".$val["annee"]."</option>\n";
    						}
    					echo '</select>';
    					echo '<input type="submit" Value="Trier"><br></form>';
     
     
     
    			}
    	/* FIN ANNEE */ 
     
    	}
    else
    	{
    		/* Afficher la liste déroulante avec la liste des fournisseurs */
    		echo "<div align='left'>1. Sélectionner le fournisseur ";
    		/* 1. Sélectionner le fournisseur. */
     
     
    		/* le fournisseur na pas été sélectionné donc on affiche le formulaire */
    		echo '<select name="fournisseur">';
    		mysql_select_db('gestion',$db); 
    		$SQL = "SELECT id,nom FROM fournisseur";
    		$res = mysql_query($SQL);
    		while($val=mysql_fetch_array($res)) 
    			{
    				echo "<option value=".$val["id"].">".$val["nom"]."</option>\n";
    			}
    		echo '</select>';
    		echo '<input type="submit" Value="Trier"><br></form>';
     
    	}
    /*FIN FOURNISSEUR */
    /////////////////////////////////////
     
    /* test des variables recues */
    /*
    echo 'annee : ';
    echo $annee;
    echo '<br> fournisseur : ';
    echo $fournisseur;
    */
     
     
    //////////////////////////////////////////
    /////////////////////////////////////////
    /* FONCTIONS TABLO                                  */
    ///////////////////////////////////////
    //////////////////////////////////////
    // si on a récupéré un résultat on l'affiche dans un tableau
     
     
    if($total) {
        // debut du tableau
        echo '<table width="100%" class="client" border="0" cellspacing="0" cellpadding="0">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr class="toprow">';
    		echo '<td class="toprow"><b><u>N° Cmde  </u><br></td>';
            echo '<td class="toprow"><b><u>Fournisseur</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Référence</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Taille</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Type</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Couleur</u></b> -  </td>';
     
            echo '<td class="toprow"><b><u>Le Client</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Date Cmde</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Date Livraison</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Magasin</u></b> -  </td>';
     
    		echo '<td class="toprow"><b><u>Modifier</u></b> -  </td>';
    		echo '<td class="toprow"><b><u>Consulter</u></b> -  </td>';
            echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
     
     
    while($row = mysql_fetch_array($result)) 
    	{
    		/* Requete pour la sélection des données clients dans la table Client suivant IdCLIENT de la table commande */
    		$client2=mysql_query('SELECT 	
    		nom, prenom, nomm
    		FROM clients
    		WHERE id='.$row['idclient'].'
    		;')
    		or die('<span style="color:#F00;">Erreur lors d\'une requette MYSQL !<br />
    		<img src="imgs/messagebox_critical.png" alt="ERREUR" />
    		l\'erreur s\'est produite à la ligne : <u>'.__LINE__.'</u>, dans le fichier <u>"'.
    		__FILE__.'"</u>.</span><br />'.mysql_error());		
    		$infoclient=mysql_fetch_array($client2);
    		/* FIN */
     
     
    		/* Requete pour la sélection des données clients dans la table Client suivant IdCLIENT de la table commande */
     
    	$fournisseur=mysql_query('SELECT 	
    		nom
    		FROM fournisseur
    		WHERE id='.$row['idfournisseur'].'
    		;')
    		or die('<span style="color:#F00;">Erreur lors d\'une requette MYSQL !<br />
    		<img src="imgs/messagebox_critical.png" alt="ERREUR" />
    		l\'erreur s\'est produite à la ligne : <u>'.__LINE__.'</u>, dans le fichier <u>"'.
    		__FILE__.'"</u>.</span><br />'.mysql_error());		
    		$infofournisseur=mysql_fetch_array($fournisseur);
    		/* FIN */
     
     
    /* Les Données du Tableau */
            echo '<tr>';
            echo '<td class="leftcol"><div class="intro">'.$row["id"].'</div></td>';
            echo '<td class="data"><div class="intro">'.$infofournisseur["nom"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["refproduit"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["taille"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["type"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["couleur"].'</div></td>';		
            echo '<td class="data"><div class="intro">'.$row["idclient"].'-- '.$infoclient["nom"].' --'.$infoclient["prenom"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["datecommande"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["datelivraison"].'</div></td>';
    		echo '<td class="data"><div class="intro">'.$row["magasin"].'</div></td>';
     
    		//LIENS
    		echo '<td class="data"><div class="intro"><a href="clients.php?action=consulter_rdv_details&id='.$row["id"].'">Modifier</a></div></td>';
    		echo '<td class="data"><div class="intro"><a href="clients.php?action=consulter_rdv_details&id='.$row["id"].'">Consulter</a></div></td>';
            echo '</tr>'."\n";
    		}
    	}
     
        echo '</table>'."\n";
    	echo '' . $total .' Commandes sur cette page sur un total de ' .$totalcmde.' Commandes';
        // fin du tableau.
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
     
    echo ' <a href="commandes.php?action=commande_consulter&page='.$i.'">'.$i.'</a> ';
     
         }
    }
    echo '</p>';
     
    // on libère le résultat
    mysql_free_result($result);
    ?>

    Lorsque je sélectionnée l'énnae et que je clic pour trier j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Notice: Undefined variable: result in c:\program files\easyphp1-8\www\application\require\actions\commande_consulter_1.php on line 243
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\application\require\actions\commande_consulter_1.php on line 243
     
    Notice: Undefined variable: result in c:\program files\easyphp1-8\www\application\require\actions\commande_consulter_1.php on line 316
     
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\application\require\actions\commande_consulter_1.php on line 316


    Si quelqu'un avait une idée pour m'aider ca serai super sympa.
    Merci d'avance pour votre aide.

    Plex

  2. #2
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Salut !

    Tout simplement, utilise le principe de concaténation dans ta requete SQL.

    Méthode :

    1) Tu récupère chaque choix de l'utilisateur dans ton filtre soit ici l'année et le fournisseur. Une fois le choix établi, le formulaire est envoyé, tu récupère ces deux choix dans un POST ou GET ayant des id ou identifiants ou encore name différents.

    2) Une fois le formulaire submit, tu affiches les données en fonction du filtre, donc du choix de l'utilisateur (Année + fournisseur). Tu établis ta requetes SQL de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete.= 'SELECT Annee,Fournisseur FROM Table WHERE CONDITION1';
    3) Tu vérifies maintenant si les valeurs posté annee et fournisseur sont vides ou pas et tu forme la fin de ta requete donc le where sur fournisseur et annee en d'autres termes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($_POST["Annee"] != null){$requete.= ' AND Annee = "'.$_POST["Annee"].'"';}
     
    if($_POST["Fournisseur"] != null){$requete.= ' AND Fournisseur = "'.$_POST["Fournisseur"].'"';}
    Voici la méthode que je te propose !

    Cordialement
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Attention, faire cela ouvre des grosses failles de sécurité. Au pire, passe un coup de mysql_real_escape_string sur tous les $_POST que tu ajoutes. Au mieux, renseigne-toi sur mysqli (ou PDO) et les prepared statements.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    JmL40, merci beaucoup pour ta réponse.
    Par contre, comment ca marche si je veux faire le tri et par fournisseur et par année ?

    Est ce que je peux faire ca :

    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
     
    // Attributions pour la condition
    if($_POST["Annee"] != null)
    	{
    		$condition.= ' Fournisseur = "'.$_POST["Fournisseur"].'"  AND Annee = "'.$_POST["Annee"].'"';
    		$controle = 'par annee et par fournisseur';
    		$annee = $_POST['annee'];
    	}
    if($_POST["Fournisseur"] != null)
    	{
    		$condition.= ' Fournisseur = "'.$_POST["Fournisseur"].'"';
    		$controle =' par fournisseur uniquement';
    		$fournisseur = $_POST['fournisseur'];
    	}
     
    if($_POST["Fournisseur"] = null)
    	{
    		$condition.= 'id notnull';
    		$controle ='Fournisseur non Sélectionné';
    	}
    // Fin des attributions //
    ?

    Merci encore pour ton aide.

  5. #5
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Salut,

    Bien justement, tu peut faire comme le code que je t'ai présenté.

    En fait, tu utilises le principe de concaténation d'une variable, pour cela il ne faut pas oublier de déclarer ta variable de cette manière $mavar.=.

    Bref, regarde le code ci-dessus fait exactement cela :

    $ma_requete = 'SELECT Annee,Fournisseurs FROM Table WHERE Annee IS NOT NULL ';

    --- > Si une Année est sélectionnée

    $ma_requete.= ' AND Annee = "'.$_POST["Annee"].'" ';

    --- > Si un fournisseur est sélectionné

    $ma_requete.= ' AND Fournisseur = "'.$_POST["Fournisseur"].'" ';

    Résultat:

    --- > Si une Année est sélectionnée

    $ma_requete = ''SELECT Annee,Fournisseurs FROM Table WHERE Annee IS NOT NULL AND Annee = "2008" ';

    --- > Si un fournisseur est sélectionné

    $ma_requete = ''SELECT Annee,Fournisseurs FROM Table WHERE Annee IS NOT NULL AND Fournisseur = "'.$_POST["Fournisseur"].'" ';

    --- > Si un fournisseur + Année

    $ma_requete = ''SELECT Annee,Fournisseurs FROM Table WHERE Annee IS NOT NULL AND Fournisseur = "'.$_POST["Fournisseur"].'" AND Annee = "2008"';

    Le principe est juste, cependant tu doit obligatoirement ajouter une première condition dans le WHERE de ta requete général qui ici est WHERE Annee IS NOT NULL. Tu peut optimiser cela en rajoutant des sécurités et autres.

    Cordialement
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    A je commence à mieux capter Merci bcp pour ton aide.
    Donc en fait, avec les If $POST le script regarde si l'année est définie ... et si le fournisseur est défini et prends alors les 2 conditions c'est ca ?

    Il fait donc WHERE condition(sans réelle condition) ET si fournisseur = x et SI année = 1700 par exemple ?


    Est ce que mon code est correct maintenant ?
    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
     
    if($_POST["Annee"] != null)
    	{
    		$condition.= ' AND Fournisseur = "'.$_POST["Fournisseur"].'"';
    		$controle = 'par annee et par fournisseur';
    		$annee = $_POST['annee'];
    		/* si l'année est définie alors le champ suivant est la ref */
    	}
    if($_POST["Fournisseur"] != null)
    	{
    		$condition.= ' AND Fournisseur = "'.$_POST["Fournisseur"].'"';
    		$controle =' par fournisseur uniquement';
    		$fournisseur = $_POST['fournisseur'];
    		/* si le fournisseur est défini alors le champ suivant est l'année */
    	        /* ici je met le code pour la liste déroulante par année */
         }
     
    if($_POST["Fournisseur"] = null)
    	{
    		$condition.= 'id IS NOT NULL';
    		$controle ='Fournisseur non Sélectionné';
    		/* si le fournisseur n'est pas défini alors il faut le définir  (j'affiche ma liste déroulante*/
     
    		echo "
    		<form action='commandes.php?action=commande_consulter_1' method='post'>
    			<div align='left'>1. Selectionnez le Fournisseur svp : "
    				echo '<select name="annee">';
    				mysql_select_db('gestion',$db); 
    				$SQL = "SELECT id,annee from annee";
    				$res = mysql_query($SQL);
    				while($val=mysql_fetch_array($res)) 
    					{
    					echo "<option value=".$val["id"].">".$val["annee"]."</option>\n";
    					}
    				echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    	}
    // Fin des attributions //
     
    /* 4 Ma requete */
    $select = '     
    	SELECT    
    	commandes.id,		
    	commandes.idfournisseur,
    	commandes.idannee,
    	commandes.refproduit,
    	commandes.type,
    	commandes.taille,
    	commandes.couleur,
    	commandes.accessoires,   	
    	commandes.informations,
    	commandes.datelivraison,
    	commandes.collaborateur,
    	commandes.magasin,
    	commandes.motif,
    	commandes.idclient,
    	commandes.datecommande				
    	FROM commandes
    	WHERE '.$condition.'
        ORDER BY id ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
        $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
        $total = mysql_num_rows($result);
    // Fin de la requete SQL //

    Sinon petite question, si je lance la page maintenant, est ce que le script ne risque par de me dire annee non definie ?
    Je vais voir si je peux modifier un peu pour ne pas avoir d'erreurs dès le lancement

    Merci encore pour ton aide et pour ta patience.
    Cdlt,

    Marc

  7. #7
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Cela semble être correct !

    Il faut bien que tu distingues les deux IF qui sont complétement indépendants pour faciliter la concaténation de la variable.

    La concaténation peut ressembler à une addition dont l'ordre des sommes est aléatoires :

    $addition = $somme1 + $somme2 ou $addition = $somme2 + $somme1

    $ma_requete = 'SELECT xxxx WHERE xxx AND Fournisseur = "xxx" AND Annee = "xxx"

    OU

    $ma_requete = 'SELECT xxxx WHERE xxx AND Annee = "xxx" AND Fournisseur = "xxx"

    La condition IF sert de controle pour ajouter un AND xxx.

    Cordialement
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  8. #8
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Citation Envoyé par sielfried Voir le message
    Attention, faire cela ouvre des grosses failles de sécurité. Au pire, passe un coup de mysql_real_escape_string sur tous les $_POST que tu ajoutes. Au mieux, renseigne-toi sur mysqli (ou PDO) et les prepared statements.
    Et surtout n'oublie pas de sécuriser tes opérations comme le spécifie sielfried !

    Voila bonne chance !
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci encore pour ton aide.
    Ca semble en effet tout bon.
    Reste juste une petite chose,
    j'ai une erreur avec la variabe $condition dans la requete SQL

    Voici mon code actuel :
    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
    96
    97
    98
    99
    100
     
     
    // Attributions pour la condition
     
    if($_POST["fournisseur"] = null)
    	{
    		$condition= '';
    		$controle ='Fournisseur non Sélectionné';
    		/* si le fournisseur n'est pas défini alors il faut le définir */
     
    		echo "
    		<form action='commandes.php?action=commande_consulter_1' method='post'>
    			<div align='left'>1. Selectionnez le Fournisseur svp : ";
    				echo '<select name="fournisseur">';
    				mysql_select_db('gestion',$db); 
    				$SQL = "SELECT id,nom from fournisseurs";
    				$res = mysql_query($SQL);
    				while($val=mysql_fetch_array($res)) 
    					{
    					echo "<option value=".$val["id"].">".$val["nom"]."</option>\n";
    					}
    				echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    		echo $controle;		
    	}
     
     
     
    if($_POST["annee"] = null)
    	{
    		$condition = '';
    		$controle ='Annee non Sélectionné';
    		/* si le fournisseur n'est pas défini alors il faut le définir */
     
    		echo "
    		<form action='commandes.php?action=commande_consulter_1' method='post'>
    			<div align='left'>2. Selectionnez l'annee svp : ";
    				echo '<select name="annee">';
    				mysql_select_db('gestion',$db); 
    				$SQL = "SELECT id,annee from annee";
    				$res = mysql_query($SQL);
    				while($val=mysql_fetch_array($res)) 
    					{
    					echo "<option value=".$val["id"].">".$val["annee"]."</option>\n";
    					}
    				echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    		echo $controle;		
    	}
     
     
    if($_POST["annee"] != null)
    	{
    		$condition = ' AND commandes.idannee = "'.$_POST["annee"].'"';
    		$controle = 'par annee et par fournisseur';
    		$annee = $_POST['annee'];
    		/* si l'année est définie alors le champ suivant est la ref */
    	}
     
     
    if($_POST["fournisseur"] != null)
    	{
    		$condition = ' AND commandes.idfournisseur = "'.$_POST["fournisseur"].'"';
     
    		$controle =' par fournisseur uniquement';
    		$fournisseur = $_POST['fournisseur'];
    		/* si le fournisseur est défini alors le champ suivant est l'année */
    	}
     
     
    // Fin des attributions //
     
    /* 4 Ma requete */
    $select = '     
    	SELECT    
    	commandes.id,		
    	commandes.idfournisseur,
    	commandes.idannee,
    	commandes.refproduit,
    	commandes.type,
    	commandes.taille,
    	commandes.couleur,
    	commandes.accessoires,   	
    	commandes.informations,
    	commandes.datelivraison,
    	commandes.collaborateur,
    	commandes.magasin,
    	commandes.motif,
    	commandes.idclient,
    	commandes.datecommande				
    	FROM commandes
    	WHERE commandes.id IS NOT NULL '.$condition.'
        ORDER BY id ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'';
        $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
        $total = mysql_num_rows($result);
    // Fin de la requete SQL //
    J'ai essayé avec id not null ou autres comme avant mais j'ai tjrs cette erreur.
    D'où vient elle ?
    J'ai pourtant défini la variable dans les if non ?
    Ou alors je dois la redéfinir quelque part si aucun paramètre n'est passé fourni ($post) .. ?

    Merci encore pour ta patience,
    Cdlt,

    Marc

  10. #10
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    Initialise ta variable $condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $condition = null;
    et ensuite n'oublie pas le point dans chaque IF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $condition.= // Le point est obligatoire dans tes conditons
    Cordialement
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci encore pour ton aide.
    Comme ceci alors ?

    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
     
     
    // Attributions pour la condition
     
    $condition = null;
     
    if($_POST["fournisseur"] = null)
    	{
    		/* si le fournisseur est null */
    		$condition.= '';
    		$controle ='Fournisseur non Sélectionné';
    		/* si le fournisseur n'est pas défini alors il faut le définir */
    	echo $controle;
    	}
     
     
     
    if($_POST["annee"] = null)
    	{
    	 /* si l'annee est nulle */
    		$condition.= '';
    		$controle ='Annee non Sélectionné';
    		/* si le fournisseur n'est pas défini alors il faut le définir */
    			echo $controle;
    	}
     
     
    if($_POST["fournisseur"] != null)
    	{
    	/* si le fournisseur est défini */
    		$condition.= ' AND commandes.idfournisseur = "'.$_POST["fournisseur"].'"';
    		$controle =' par fournisseur uniquement';
    		$fournisseur = $_POST['fournisseur'];
    		/* si le fournisseur est défini alors le champ suivant est l'année */
    	}
    	else
    	{
     
    //
    echo "
    <form action='commandes.php?action=consulter3' method='post'>
    	<div align='left'>1. Sélectionnez le fournisseur Svp";
    		echo '<select name="fournisseur">';
    		mysql_select_db('gestion',$db); 
    		$SQL = "SELECT id,nom from fournisseur";
    		$res = mysql_query($SQL);
    			while($val=mysql_fetch_array($res)) 
    				{
    				echo "<option value=".$val["id"].">".$val["nom"]."</option>\n";
    				}
    		echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    //	
    	}	
     
     
    if($_POST["annee"] != null)
    	{
    	 /* si lannee est definie */
    		$condition.= ' AND commandes.idannee = "'.$_POST["annee"].'"';
    		$controle = 'par annee et par fournisseur';
    		$annee = $_POST['annee'];
    		/* si l'année est définie alors le champ suivant est la ref */
    	}
    	else
    	{
    	echo 'annee non définie';
    //
    echo "
    <form action='commandes.php?action=consulter3' method='post'>
    	<div align='left'>2. Sélectionnez l'annee : ";
    		echo '<select name="annee">';
    		mysql_select_db('gestion',$db); 
    		$SQL = "SELECT id,annee from annee";
    		$res = mysql_query($SQL);
    			while($val=mysql_fetch_array($res)) 
    				{
    				echo "<option value=".$val["id"].">".$val["annee"]."</option>\n";
    				}
    		echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    //	
    	}
    Par contre on dirait que la condition reste toujours nulle maintenant :s
    J'ai du faire quelque chose qui ne fallait pas

    Et j'ai une tite erreur ici

    [Thu May 22 12:20:18 2008] [error] PHP Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\\program files\\easyphp1-8\\www\\application\\require\\actions\\consulter3.php on line 140

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<select name="annee">';
    		mysql_select_db('gestion',$db);  <-<--<<----140
    		$SQL = "SELECT id,annee from annee";

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    coucou,
    j'ai modifié un peu mais j'ai tjrs un soucis, je ne comprends pas comment avoir

    et le fournisseur et l'année en paramètre.
    ici j'ai maintenant un message d'erreur qui me dis

    Notice: Undefined index: fournisseur in c:\program files\easyphp1-8\www\application\require\actions\consulter3.php on line 133
    if (isset($_POST['annee']))
    {
    /* si lannee est definie */
    $condition.= ' AND commandes.idannee = "'.$_POST["annee"].'"';
    $controle = 'par annee et par fournisseur';
    $annee = $_POST['annee'];
    echo 'annee definie ok';
    /* si l'année est définie alors le champ suivant est la ref */
    echo $condition;
    $fournisseur = $_POST['fournisseur']; <<--<-- 133
    echo 'fournisseur : ';
    echo $fournisseur;
    Donc le fournisseur n'a pas l'air de passer dans cette boucle ..

    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
     
     
    $condition = null;
     
    if (isset($_POST['fournisseur']))
    	{
    	/* si le fournisseur est défini */
    		$condition.= ' AND commandes.idfournisseur = "'.$_POST["fournisseur"].'"';
    		$controle =' par fournisseur uniquement';
    		$fournisseur = $_POST['fournisseur'];
    		/* si le fournisseur est défini alors le champ suivant est l'année */
    		echo $condition;
    	}
    	else
    	{
    		echo "
    		<form action='commandes.php?action=consulter3' method='post'>
    		<div align='left'>1. Sélectionnez le fournisseur Svp";
    		echo '<select name="fournisseur">';
    		mysql_select_db('gestion',$db); 
    		$SQL = "SELECT id,nom from fournisseur";
    		$res = mysql_query($SQL);
    			while($val=mysql_fetch_array($res)) 
    				{
    				echo "<option value=".$val["id"].">".$val["nom"]."</option>\n";
    				}
    		echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    //	
    	}	
     
    if (isset($_POST['annee']))
    	{
    	 /* si lannee est definie */
    		$condition.= ' AND commandes.idannee = "'.$_POST["annee"].'"';
    		$controle = 'par annee et par fournisseur';
    		$annee = $_POST['annee'];
    		echo 'annee definie ok';
    		/* si l'année est définie alors le champ suivant est la ref */
    		echo $condition;
    		$fournisseur = $_POST['fournisseur'];
    		echo 'fournisseur : ';
    		echo $fournisseur;
    	}
    	else
    	{
    	echo 'annee non définie';
     
    	echo "
    		<form action='commandes.php?action=consulter3' method='post'>
    		<div align='left'>2. Sélectionnez l'annee : ";
    		echo '<select name="annee">';
    		mysql_select_db('gestion',$db); 
    		$SQL = "SELECT id,annee from annee";
    		$res = mysql_query($SQL);
    			while($val=mysql_fetch_array($res)) 
    				{
    				echo "<option value=".$val["id"].">".$val["annee"]."</option>\n";
    				}
    		echo "</select>";
    		echo "<input type='submit' Value='Trier'><br>
    			</div>
    		</form>";
    		echo $condition;
    //	
    	}
     
    echo $condition;
    sinon ca m'a l'air ok.
    reste le soucis de variables lorsqu'on passe à une autre boucle if :s

Discussions similaires

  1. [XL-2010] Collage d'un ensemble de données dans un tableau avec des filtres
    Par zozo45dd dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2015, 10h45
  2. Modifier des données dans un tableau avec un userform
    Par sebastien-16600 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2013, 21h23
  3. Réponses: 5
    Dernier message: 28/02/2013, 10h05
  4. Réponses: 2
    Dernier message: 07/01/2013, 14h08
  5. [MySQL] affichage des données dans un tableau avec mysql et php
    Par fofina dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2007, 14h00

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