PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-10-2011 16:31:46

bedi01
Membre
Inscription : 18-10-2011
Messages : 1

recherche avec critere

Bonjour a tous,
j'ai besoin d'un coup main dans la réalisation de mon script recherche. je suis un débutant en php. en fait je veux réaliser un script php me permettant d'afficher les données de ma table pesée a parti d'un formulaire.Mon script php doit me permettre d'afficher tous les produits de ma table pesée et aussi chaque produit que je récupère dans ma BD a partir de critères comme les dates d'enregistrements de ses produits.
j'ai essayé de réaliser ce script mais puff je suis perdu alors venez a mon aide et apportez moi des exemples de script si possible .
Comment faire?
Voici mon code:


<?php
include("../Connections/dbb.php");
?>

<?php
    if(isset($_POST['CODEPROD'])){
    $CODEPROD=$_POST['CODEPROD'];
}
               
//valeur par défaut à l'arrivée
               
else{
    $CODEPROD="choisir";
}
               
/*voir suite dans les ajouts PHP dans le select
affiche l'option selected le cas échéant*/

?>

       
      <FORM  METHOD="post" ACTION="impprod.php">
         <fieldset>
            <table>
            <tr>
            <td height="10"> </td><td> </td><td>
         <SELECT name="CODEPROD">
        <option value="choisir" selected="selected"> ----- Choisir ----- </option>
        <option value="produit"<?php if($CODEPROD =='produit') { echo 'selected'; } ?>>Tous les produits</option>
     
                   <?php
         
              //On se connecte
               $dbb=mysql_connect($hostname_dbb, $username_dbb, $password_dbb) or die('Erreur de connexion ' . mysql_error());  
           
      // on sélectionne la base
   mysql_select_db($database_dbb) or die('Erreur de selection ' . mysql_error());
   
                 //On prépare la requête SQL qui récupère les champs
                    $sql = "SELECT DISTINCT CODEPROD FROM pesee ORDER BY CODEPROD";  
               
                  /* On lance la requête (mysql_query)
                 et on impose un message d'erreur si la requête ne passe pas (or die) */

                 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
           
                    //On scanne le résultat et on construit chaque option avec
                while($data = mysql_fetch_array($req)){
               
                                     // on affiche chaque champ
                    echo '<option name="'.$data['CODEPROD'].'">'.$data['CODEPROD'].'</option>';
                      }
                                     //On libère mysql de cette première requête
                  mysql_free_result ($req);
                                   //On ferme le select
                 ?>
   </SELECT>
    </td><td height="10"> </td><td> </td></tr>
            <tr height="15"></tr>
            <tr>
            <td align="right" height="10">période du:</td>
            <td><input type="text" name="DATEP1" /></td>
            <td align="right" height="10">Heure:</td>
            <td><input type="text" name="HEUREP" /></td></tr>
            <tr>
            <td align="right" height="10">Au:</td>
            <td><input type="text" name="DATEP2" /></td>
            <td align="right" height="10">Heure:</td>
            <td><input type="text" name="HEUREP" /></td></tr>
            <tr height="10"></tr>
            <tr>
            <td> </td>
            <td> </td>
            <td align="left"><input type="submit" value="Impression" name="OK"></td>
            <td><input type="reset" value="Annuler" /></td>
            </tr>  
            </table>
          </fieldset>
            </FORM>
            <!--
On ferme le formulaire
-->
<?php
//On traite le formulaire
if(isset($_POST['OK'])){
$CODEPROD=$_POST['CODEPROD'];
$DATEP1=$_POST['DATEP1'];
$DATEP2=$_POST['DATEP2'];

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

$sql = 'SELECT CODEPROD FROM pesee WHERE DATEP BETWEEN "'.$DATEP1.'" AND "'.$DATEP2.'"';

/* On lance la requête (mysql_query)
et on impose un message d'erreur si la requête ne passe pas (or die)*/

$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_num_rows($req);
// si on a récupéré un résultat on l'affiche.
                if($data) {
                  // début du tableau
             echo'<p><u>Liste des produits</u></p>';
                 echo '<center><table bgcolor="#FFFFFF" width="590" align="center">'."\n";
                 // première ligne on affiche les titres prénom et surnom dans 2 colonnes
                 echo '<tr>';
                 echo '<td bgcolor="#669999" style="text-align:center"><b><u>N°Camion</u></b></td>';
                 echo '<td bgcolor="#669999" style="text-align:center"><b><u>CONNAISSEMENT</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>PRODUIT</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>CLIENT</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>TRANSPORTEUR</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>DESTINATION/ORIGINAL</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>Poids net</u></b></td>';
                 echo '</tr>'."\n";
              //On scanne chaque résultat et affiche
                while($row = mysql_fetch_array($req)){
                echo '<tr>';
                 echo '<td bgcolor="#CCCCCC">'.$row['NUMCON'].'</td>';
                 echo '<td bgcolor="#CCCCCC">'.$row['NUMLOT'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['CODEPROD'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['CODECLI'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['TRANSPORT'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['DESTI'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['POIDNET'].'</td>';
                 echo '</tr>'."\n";
             }
                 echo '</table></center>'."\n";
               

                // on libère le résultat
                  mysql_free_result($req);    
               }
            elseif($CODEPROD=='produit')
            {
                $sql='SELECT CODEPROD FROM pesee WHERE DATEP BETWEEN "'.$DATEP1.'" AND "'.$DATEP2.'"';
                $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
            $data=mysql_num_rows($req);
            // si on a récupéré un résultat on l'affiche.
                if($data) {
                  // début du tableau
             echo'<p><u>Liste des produits</u></p>';
                 echo '<center><table bgcolor="#FFFFFF" width="590" align="center">'."\n";
                 // première ligne on affiche les titres prénom et surnom dans 2 colonnes
                 echo '<tr>';
                 echo '<td bgcolor="#669999" style="text-align:center"><b><u>Code</u></b></td>';
                 echo '<td bgcolor="#669999" style="text-align:center"><b><u>Libellé</u></b></td>';
             echo '<td bgcolor="#669999" style="text-align:center"><b><u>Observation</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($req)) {
             echo '<tr>';
                 echo '<td bgcolor="#CCCCCC">'.$row['CODEPROD'].'</td>';
                 echo '<td bgcolor="#CCCCCC">'.$row['CODECLI'].'</td>';
             echo '<td bgcolor="#CCCCCC">'.$row['POIDNET'].'</td>';
                 echo '</tr>'."\n";
                  }
                 echo '</table></center>'."\n";
                 // fin du tableau.
            }
                else
            echo '<p><u>Liste des produits</u></p>Pas d\'enregistrements dans cette table...';

                // on libère le résultat
                  mysql_free_result($req);    
            }
           
}
//On ferme sql
mysql_close ();

?>
 

Hors ligne

#2 18-10-2011 17:09:22

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : recherche avec critere

Bonjour,

Bien que je ne sache pas avec quelle DTD tu travailles déjà avant d'arriver à la partie traitement données j'ai vu une erreur


// ligne trouvée
<option value="produit"<?php if($CODEPROD =='produit') { echo 'selected'; } ?>>Tous les produits</option>
// ligne corrigée
<option value="produit"<?php if($CODEPROD =='produit') { echo 'selected="selected"'; } ?>>Tous les produits</option>
 

Ensuite dans le traitement de ton formulaire tes requêtes ne sont pas bonnes car la première retourne l'ensemble des codeprod produits dans une plage données alors que le code de traitement indique que tu souhaites récupérer l'ensemble des produits ayant un codeprod donné (et connu non utilisé dans ta requête) dans une plage de date donné. Même problème avec la deuxième requête.

Cordialement,

Jc


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums