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.
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.
<?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="Tous les 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> </td>
<td align="right" height="10">Au:</td>
<td><input type="text" name="DATEP2" /></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'];
if($CODEPROD=='CODEPROD')
{
// 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, NUMLOT, NUMCON,CODECLI, TRANSPORT, DESTI, POIDNET, DATEP 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>'.$CODEPROD.'</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 '<td bgcolor="#669999" style="text-align:center"><b><u>Date de pesée</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 '<td bgcolor="#CCCCCC">'.$row['DATEP'].'</td>';
echo '</tr>'."\n";
}
echo '</table></center>'."\n";
}
else
echo '<p><u>Liste des clients</u></p>Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($req);
}
elseif($CODEPROD=='produit')
{
$sql='SELECT CODEPROD, NUMLOT, NUMCON,CODECLI, TRANSPORT, DESTI, POIDNET, DATEP 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>Tous les 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 '<td bgcolor="#669999" style="text-align:center"><b><u>Date de pesée</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 '<td bgcolor="#CCCCCC">'.$row['DATEP'].'</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);
}
else{
echo'<script>alert("Vous n\'avez rien sélectionné.")</script>';
}
}
//On ferme sql
mysql_close ();
?>