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.

<?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">&nbsp;</td><td>&nbsp;</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">&nbsp;</td><td>&nbsp;</td></tr>
<tr height="15"></tr>
<tr>
<td align="right" height="10">p&eacute;riode du:</td>
<td><input type="text" name="DATEP1" /></td>
<td>&nbsp;</td>

<td align="right" height="10">Au:</td>
<td><input type="text" name="DATEP2" /></td>
</tr>
<tr height="10"></tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</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 ();

?>
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