Recherche mulicrétères

bahoo -  
 bahoo -
bonjour
je suis en trai de programmer avec php et je veut faire une recherche multicrétère sur des procedure selon 4 crétère (mot clé, sa référence, le titre de la procedure, et sa date d'application) est ce que vous pouvez m'aidez, voici mon petit programme mais ca n'a pas marché tel que les condition (if )ne marche pas correctement :

<?php
$mt_cle=$_POST["mt_cle"];
$reference=$_POST["reference"];
$theme=$_POST["theme"];
$Dt_app=$_POST["Dt_app"];

$query='SELECT * FROM proc where (1=1)';

$query1 ='and mot_cle="'.$_POST["mt_cle"].'"';
$query2 ='and id_proc="'.$_POST["reference"].'"';
$query3 ='and titre_proc="'.$_POST["theme"].'"';
$query4 ='and date_app="'.$_POST["Dt_app"].'"';

if($mt_cle!=='0'])){$query=$query.$query3
if($reference!=='0'){$query=$query.$query2;}
if($theme!=='0'){$query=$query.$query3;}
if($Dt_app!=='0'){$query=$query.$query4;}
echo $query;

$r=mysql_query($query);

mysql_close();

echo'
<div>
<table>
<tr>
<td valign="middle">id_proc</td>
<td valign="middle">titre_proc</td>
<td valign="middle">empl_proc</td>
</tr>
</table>
</div>';
while($a=mysql_fetch_object($r))
{
$procedure=$a->id_proc;
$titre=$a->titre_proc;
$emplacement=$a->empl_proc;
echo"
<div>
<table>
<tr>
<td><u><a href=".$emplacement.">$procedure</a></u></td><td>$titre</td>
<td>$emplacement</td>
</tr>
</table>
</div>";
}

?>
/*******/
et merci beaucoup .

2 réponses

Utilisateur anonyme
 
Bonjour,

tu affiches ta requête finale (echo $query;), tu dois t'apercevoir qu'il a des erreurs de syntaxe.
il faut déjà mettre un espace devant chaque and
0
bahoo
 
merci beaucoup giheller pour vos idés et en fin de compte ca marche tres bien et voici ma page complète programme:

<?php
include("../connexion_bd/connexionbase.php");
session_start();
?>

<?php

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" media="all" href="../calendar/calendar-blue2.css" title="win2k-1" />
<script type="text/javascript" src="../calendar/calendar.js"></script>
<script type="text/javascript" src="../calendar/lang/calendar-fr.js"></script>
<script type="text/javascript" src="../calendar/calendar-setup.js"></script>
<title>
Rechercher procedure </title>
<img src="../images/bandeau.jpg.png" width="100%" />
</head>
<br /><br />
<center><h1><b class="Titre">Rechercher Procédure</b></h1>
<br />
<body onLoad="donner_focus()" width="100%" style="width:100%; margin:0px;margin-top:0px; margin-bottom:0px;">
<form name="rech_proc" action="rechercher_proc.php" method="POST" target="_top" >
<input type="hidden" name="n" value="<?php echo($id) ;?>">

<table border="1" width="580" align="center" >
<tr>
<td width="179"><b> recherche sur mot clé:</b></td>
<td width="385">
<input type="text" name="mt_cle" size="50" value="<?php echo $s_mt_cle; ?>"/></td>
</tr>
<tr>
<td ><b>Référence:</b></td>
<td><select name="reference" value="<?php if (isset($_SESSION['reference'])) echo $s_reference; ?>">
<option></option>
<?php
$resultat=mysql_query("select id_proc from proc order by id_proc") or die ("requète non executé");
if (! $resultat) { echo "Erreur requete"; exit;}
while ($ligne=mysql_fetch_array($resultat))
{
?>
<option><?php echo ''.$ligne['id_proc'].'';?> </option>
<?php
}

?>
</select></td>
</tr>
<tr><td><b>Thème:</b></td>
<td><select name="theme" value="<?php if (isset($_SESSION['theme'])) echo $s_theme; ?>" >
<option></option>
<?php
$resultat=mysql_query("select titre_proc, titre_proc from proc order by titre_proc") or die ("requète non executé");
if (! $resultat) { echo "Erreur requete"; exit;}
while ($ligne=mysql_fetch_array($resultat))
{
?>
<option><?php echo ''.$ligne['titre_proc'].'';?> </option>
<?php
}

?></select></td>
</tr>
<tr>
<td><b>Date D'application:</b>
<!--pour la date : DATE_FORMAT(date,format) par exemple : DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); -->
<td><input name="Dt_app" id="Dt_app" type="text" class="calendar" value="<?php echo $s_Dt_app; ?>" readonly="yes">
<script type="text/javascript">
Calendar.setup(
{
inputField : "Dt_app", // ID of the input field
ifFormat : "%Y/%m/%d", // the date format
button : "Dt_app" // ID of the button
}
);
</script> </td></td>
</tr>
<tr><td colspan="3" align="center">
<input class="allButton" type="submit" name="rechercher" value="Rechercher">      
<input class="allButton" type="button" name="Home1" value="Home" onClick="javascript:home();">       
<input class="allButton" type="reset" name="annuler" value="Annuler" onclick="<?php unset($_SESSION["mt_cle"]); unset($_SESSION["reference"]); unset($_SESSION["theme"]);
unset($_SESSION["Dt_app"]);
?>"></td>
</tr>
</table>

</form>

<script>
function pSubmit(evenement)
{
if (evenement.type == "keypress" & evenement.keyCode == 13)
{
document.rech_proc.submit();
}
}
function home() // pour annuler la saisie et permet aussi le retour vers la page principale.
{
//document.form_login.target="_blanc";
document.rech_proc.action='../menu/menu.php';
rech_proc.submit();
}

function VALIDER() // pour annuler la saisie et permet aussi le retour vers la page principale.
{
//document.rech_proc.target="_blanc";
document.rech_proc.action='rechercher_proc.php';
rech_proc.submit();
}

function annuler() // pour annuler la saisie et permet aussi le retour vers la page principale.
{
//document.form_login.target="_blanc";
document.rech_proc.action='rechercher_proc.php';
// rech_proc.submit();
}

function donner_focus()
{
document.forms.rech_proc.mt_cle.focus();
}
function pSubmit(evenement)
{
if (evenement.type == "keypress" & evenement.keyCode == 13)
{
document.rech_proc.submit();
}
}
</script>
<?php
$bouton = $_POST['rechercher'];
if(!empty($bouton)) {

$mt_cle=$_POST["mt_cle"];
$reference=$_POST["reference"];
$theme=$_POST["theme"];
$Dt_app=$_POST["Dt_app"];

$query='SELECT * FROM proc where (1=1)';//`id_proc`, `version_proc`, `titre_proc`, `date_app`, `empl_proc`, `mot_cle`, `resum`
//String[] requetes =new String[5];
$query1 ='and mot_cle="'.$_POST["mt_cle"].'"';
$query2 ='and id_proc="'.$_POST["reference"].'"';
$query3 ='and titre_proc="'.$_POST["theme"].'"';
$query4 ='and date_app="'.$_POST["Dt_app"].'"';

// $query=$query.$query3;
//(($nom == "")
if(!$mt_cle==""){$query=$query.$query1;}//if(!( beneficiaire.equalsIgnoreCase(""))){ requete=requete+requetes[0];}
if(!$reference==""){$query=$query.$query2;}
if(!$theme==""){$query=$query.$query3;}
if(!$Dt_app==""){$query=$query.$query4;}
//echo $query;

$r=mysql_query($query);
mysql_close();
$row=mysql_num_rows($r);
if (!$r==null){
if ($row>null){
?>
<br/><br/><br/><br/><br/>
<h2 align="center" >La liste des Procedures</h2>
<div align="center" style=" visibility:visible;width:900px; z-index:1;overflow: auto; ">
<table align="left" width="100%" border="0" cellspacing="0">
<tr bgcolor="#dddddd">
<td valign="middle" width="15%" align="center"><label style="font: 10px verdana">Référence</label></td>
<td valign="middle" width="45%" align="center"><label style="font: 10px verdana">Titre_proc</label></td>
<td valign="middle" width="10%" align="center"><label style="font: 10px verdana">Date d'application</label></td>
<td valign="middle" width="25%" align="center"><label style="font: 10px verdana">Fichier</label></td>
<td valign="middle" width="5%" align="center"><label style="font: 10px verdana">              </label></td>
<!--<td valign="middle" width="5%" align="center"><label style="font: 10px verdana">supprimer</label></td>-->

</tr>
</table>
</div>
<!-- <br/>-->
<div align="center" style=" visibility:visible;height:250px;width:900px; z-index:1;overflow: auto; ">
<table align="left" width="100%" border="0" cellspacing="1" >
<?php
while($a=mysql_fetch_object($r))
{
$procedure=$a->id_proc;
$titre=$a->titre_proc;
$emplacement=$a->empl_proc;
$fichier=$a->fichier;
$date=$a->date_app;

?>
<?php

/*******/

for($s=0; $s<$row; $s++)
if(( $s % 2 )> 0) {?>

<tr bgcolor="#dddddd" align="left" style="color:#060e6a">
<?php } else { ?>
<tr bgcolor="#f5f5f5" align="left" style="color:#060e6a">
<?php } ?>

<td width="15%" title="consulter la procedure " align="center"><u><a href="<?php echo $emplacement; ?>" target="_blank"><?php echo $procedure; ?></a></u></td>
<td width="45%" align="middle"><?php echo $titre; ?></td>
<td width="10%" align="middle"><?php echo $date; ?></td>
<td width="25%" align="middle"><?php echo $fichier; ?></td>
<!--/*le lien vers la page 'modifier_proc.php' pour effectuer les modification concernés*/ -->
<td width="5%" align="left" title="Modifier"><a href="modifier_proc.php?n=<?php echo $procedure; ?>"><img src="../images/b_edit.png" /></a></td>
<!--/*le lien vers la page 'supp.php' pour effectuer la suppression de la procedure concernée*/-->
<td width="5%" align="left" title="Supprimer"><a href="supp.php?n=<?php echo $procedure; ?>"><img src="../images/b_drop.png"/></a></td>
</tr>
<?php } ?>
</table>
</div>
<?php } else{ ?>
<br/><br/><br/><br/>
<div align="center" >
<font size=3 color="red" ><b ><p><H2 align="center"> Aucune procedure ne répond aux critères recherchés </H2></p> </b> </font>
<?php }} ?>
</div>
<?php
}
?>
<!--<div style="position:absolute; visibility:visible; top: 30px;left:100px;height:150;width:800px; z-index:1;overflow: auto; ">-->
</body>
<!--
echo <<<TABLEAU
<tr bgcolor="dddddd">
<td align=center>$description</td>
<td align=center><a href='$adresse'>oui</a></td>
</tr>
TABLEAU;

-->
<script>
function supprimer() // pour annuler la saisie et permet aussi le retour vers la page principale.
{
if (confirm("Etes-vous sûr de vouloir supprimer cette procédure ?")) {
document.rech_proc.action='supp_proc.php';
rech_proc.submit();
alert(" procédure supprimé avec succe ?")
}
//document.form_login.target="_blanc";
// document.rech_proc.action='rechercher_proc.php';
// rech_proc.submit();
}
</script>
</html>
0