RECHERCHE PAR CRITERE EN PHP

Répondre
bedidaquin01
le 19/10/2011 à 17:19
bedidaquin01
bonjour a tous,

je suis a la recherche d'aide pour l'elaboration de mon script me permettant de rechercher et d'afficher a partir d'un formulaire les produits de ma base de donnée en fonction des dates de debut et de fin. voici presenté mon script, mais je pense que la logique et la requete sont maladroitement composé.merci de me venir en aide.

  1. <?php
  2. if(isset($_POST['CODEPROD'])){
  3. $CODEPROD=$_POST['CODEPROD'];
  4. }

  5. //valeur par défaut à l'arrivée

  6. else{
  7. $CODEPROD="choisir";
  8. }

  9. /*voir suite dans les ajouts PHP dans le select
  10. affiche l'option selected le cas échéant*/
  11. ?>


  12. <FORM METHOD="post" ACTION="impprod.php">
  13. <fieldset>
  14. <table>
  15. <tr>
  16. <td height="10">&nbsp;</td><td>&nbsp;</td><td>
  17. <SELECT name="CODEPROD">
  18. <option value="choisir" selected="selected"> ----- Choisir ----- </option>
  19. <option value="Tous les produit"<?php if($CODEPROD =='produit') { echo 'selected'; } ?>>Tous les produits</option>

  20. <?php

  21. //On se connecte
  22. $dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());

  23. // on sélectionne la base
  24. mysql_select_db($database_dbb) or die('Erreur de selection ' . mysql_error());

  25. //On prépare la requête SQL qui récupère les champs
  26. $sql = "SELECT DISTINCT CODEPROD FROM pesee ORDER BY CODEPROD";

  27. /* On lance la requête (mysql_query)
  28. et on impose un message d'erreur si la requête ne passe pas (or die) */
  29. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

  30. //On scanne le résultat et on construit chaque option avec
  31. while($data = mysql_fetch_array($req)){

  32. // on affiche chaque champ
  33. echo '<option name="'.$data['CODEPROD'].'">'.$data['CODEPROD'].'</option>';
  34. }
  35. //On libère mysql de cette première requête
  36. mysql_free_result ($req);
  37. //On ferme le select
  38. ?>
  39. </SELECT>
  40. </td><td height="10">&nbsp;</td><td>&nbsp;</td></tr>
  41. <tr height="15"></tr>
  42. <tr>
  43. <td align="right" height="10">p&eacute;riode du:</td>
  44. <td><input type="text" name="DATEP1" /></td>
  45. <td>&nbsp;</td>

  46. <td align="right" height="10">Au:</td>
  47. <td><input type="text" name="DATEP2" /></td>
  48. </tr>
  49. <tr height="10"></tr>
  50. <tr>
  51. <td>&nbsp;</td>
  52. <td>&nbsp;</td>
  53. <td align="left"><input type="submit" value="Impression" name="OK"></td>
  54. <td><input type="reset" value="Annuler" /></td>
  55. </tr>
  56. </table>
  57. </fieldset>
  58. </FORM>
  59. <!--
  60. On ferme le formulaire
  61. -->
  62. <?php
  63. //On traite le formulaire
  64. if(isset($_POST['OK'])){
  65. $CODEPROD=$_POST['CODEPROD'];
  66. $DATEP1=$_POST['DATEP1'];
  67. $DATEP2=$_POST['DATEP2'];

  68. if($CODEPROD=='CODEPROD')
  69. {

  70. // On prépare la requête
  71. //requête différente selon qu'on veut tout le champ
  72. //ou un champ avec une condition

  73. $sql = 'SELECT CODEPROD, NUMLOT, NUMCON,CODECLI, TRANSPORT, DESTI, POIDNET, DATEP FROM pesee WHERE DATEP BETWEEN "'.$DATEP1.'" AND "'.$DATEP2.'"';

  74. /* On lance la requête (mysql_query)
  75. et on impose un message d'erreur si la requête ne passe pas (or die)*/
  76. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  77. $data=mysql_num_rows($req);
  78. // si on a récupéré un résultat on l'affiche.
  79. if($data){
  80. // début du tableau
  81. echo'<p><u>'.$CODEPROD.'</u></p>';
  82. echo '<center><table bgcolor="#FFFFFF" width="590" align="center">'."\n";
  83. // première ligne on affiche les titres prénom et surnom dans 2 colonnes
  84. echo '<tr>';
  85. echo '<td bgcolor="#669999" style="text-align:center"><b><u>N°Camion</u></b></td>';
  86. echo '<td bgcolor="#669999" style="text-align:center"><b><u>CONNAISSEMENT</u></b></td>';
  87. echo '<td bgcolor="#669999" style="text-align:center"><b><u>PRODUIT</u></b></td>';
  88. echo '<td bgcolor="#669999" style="text-align:center"><b><u>CLIENT</u></b></td>';
  89. echo '<td bgcolor="#669999" style="text-align:center"><b><u>TRANSPORTEUR</u></b></td>';
  90. echo '<td bgcolor="#669999" style="text-align:center"><b><u>DESTINATION/ORIGINAL</u></b></td>';

  91. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Poids net</u></b></td>';
  92. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Date de pesée</u></b></td>';
  93. echo '</tr>'."\n";
  94. //On scanne chaque résultat et affiche
  95. while($row = mysql_fetch_array($req)){
  96. echo '<tr>';
  97. echo '<td bgcolor="#CCCCCC">'.$row['NUMCON'].'</td>';
  98. echo '<td bgcolor="#CCCCCC">'.$row['NUMLOT'].'</td>';
  99. echo '<td bgcolor="#CCCCCC">'.$row['CODEPROD'].'</td>';
  100. echo '<td bgcolor="#CCCCCC">'.$row['CODECLI'].'</td>';
  101. echo '<td bgcolor="#CCCCCC">'.$row['TRANSPORT'].'</td>';
  102. echo '<td bgcolor="#CCCCCC">'.$row['DESTI'].'</td>';
  103. echo '<td bgcolor="#CCCCCC">'.$row['POIDNET'].'</td>';
  104. echo '<td bgcolor="#CCCCCC">'.$row['DATEP'].'</td>';
  105. echo '</tr>'."\n";
  106. }
  107. echo '</table></center>'."\n";
  108. }
  109. else
  110. echo '<p><u>Liste des clients</u></p>Pas d\'enregistrements dans cette table...';

  111. // on libère le résultat
  112. mysql_free_result($req);

  113. }
  114. elseif($CODEPROD=='produit')
  115. {
  116. $sql='SELECT CODEPROD, NUMLOT, NUMCON,CODECLI, TRANSPORT, DESTI, POIDNET, DATEP FROM pesee WHERE DATEP BETWEEN "'.$DATEP1.'" AND "'.$DATEP2.'"';
  117. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  118. $data=mysql_num_rows($req);
  119. // si on a récupéré un résultat on l'affiche.
  120. if($data) {
  121. // début du tableau
  122. echo'<p><u>Tous les produits</u></p>';
  123. echo '<center><table bgcolor="#FFFFFF" width="590" align="center">'."\n";
  124. // première ligne on affiche les titres prénom et surnom dans 2 colonnes
  125. echo '<tr>';
  126. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Code</u></b></td>';
  127. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Libellé</u></b></td>';
  128. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Observation</u></b></td>';
  129. echo '<td bgcolor="#669999" style="text-align:center"><b><u>Date de pesée</u></b></td>';
  130. echo '</tr>'."\n";
  131. // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
  132. while($row = mysql_fetch_array($req)) {
  133. echo '<tr>';
  134. echo '<td bgcolor="#CCCCCC">'.$row['CODEPROD'].'</td>';
  135. echo '<td bgcolor="#CCCCCC">'.$row['CODECLI'].'</td>';
  136. echo '<td bgcolor="#CCCCCC">'.$row['POIDNET'].'</td>';
  137. echo '<td bgcolor="#CCCCCC">'.$row['DATEP'].'</td>';
  138. echo '</tr>'."\n";
  139. }
  140. echo '</table></center>'."\n";
  141. // fin du tableau.
  142. }
  143. else
  144. echo '<p><u>Liste des produits</u></p>Pas d\'enregistrements dans cette table...';

  145. // on libère le résultat
  146. mysql_free_result($req);
  147. }

  148. else{
  149. echo'<script>alert("Vous n\'avez rien sélectionné.")</script>';
  150. }
  151. }



  152. //On ferme sql
  153. mysql_close ();

  154. ?>
bedidaquin01
LupusMic
le 21/10/2011 à 16:37
LupusMic
Quel est le résultat attendu, et quel est le résultat obtenu ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
bedidaquin01
le 21/10/2011 à 18:46
bedidaquin01
bonjour ,
mon problème se situe au niveau de l’exécution des conditions.
dans ma premiere conditionje demande l'affichage par type de produit selectionné:
if($CODEPROD='CODEPROD'){
instruction et affichage;
}

ensuite dans ma deuxième condition je demande l'affichage de tous les produits dans un même tableau.
if($CODEPROD='produit'){
instruction et affichage;
}

le problème est que seulement la première condition s’exécute mais pas la deuxième.
merci de me venir en aide.
bedidaquin01
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours