Bonjour,
je suis pour l'instant en stage et je dois résoudre certains bugs d'un
site, ce code la n'est pas le miens (c'est celui d'origine), mais après
moult modifications je n'ai pas réussi à résoudre le problème.
Lorsque je remplis certains champs d'un formulaire (exemple ci
dessous), affin d'affiner la recherche, le tri ne s'effectue pas: tout
les enregistrements de la BDD sont renvoyés
<?php
session_start();
?>
<?php
global $num_uc, $garantie_uc, $marque_uc, $date_ach_uc, $type_uc,
$date_affect_uc, $num_inv_uc, $num_serie_uc, $materiel, $nom_util,
$service, $unite, $marque_ecran, $garantie_ecran, $type_ecran,
$date_ach_ecran, $num_inv_ecran, $date_affect_ecran, $num_serie_ecran,
$cpu, $cad_cpu, $ram, $dram, $dd, $se, $lecteur, $dao, $adr_ip, $dns,
$masque, $wins, $passerelle, $date_d, $date_f;
?>
<HTML>
<HEAD>
<LINK REL="stylesheet" HREF="../styles/dde53.css" TYPE="text/css">
<?php
include ('div.php');
?>
</HEAD>
<?php
include ('date.php');
include ('connect.php');
$idconnect = bddconnect();
if ($idconnect) {
$ok = false;
$ip = false;
$name = $nom_util;
if ($num_uc !
"") { $num_uc "AND micro.num_uc LIKE '%".$num_uc."%' "; $ok = true; }
if ($garantie_uc !
"") { $garantie_uc "AND uc.garantie_uc LIKE '".$garantie_uc."' "; $ok = true; }
if ($marque_uc !
"") { $marque_uc "AND uc.marque_uc LIKE '".$marque_uc."' "; $ok = true; }
if ($date_ach_uc !
"") { $date_ach_uc "AND uc.date_ach_uc LIKE '".$date_ach_uc."' "; $ok = true; }
if ($type_uc !
"") { $type_uc "AND uc.type_uc LIKE '".$type_uc."' "; $ok = true; }
if ($date_affect_uc !
"") { $date_affect_uc "AND uc.date_affect_uc LIKE '".$date_affect_uc."' "; $ok = true; }
if ($num_inv_uc !
"") { $num_inv_uc "AND uc.num_inv_uc LIKE '".$num_inv_uc."' "; $ok = true; }
if ($num_serie_uc !
"") { $num_serie_uc "AND uc.num_serie_uc LIKE '".$num_serie_uc."' "; $ok = true; }
if ($materiel !
"") { $materiel "AND micro.materiel LIKE '".$materiel."' "; $ok = true; }
if ($nom_util !
"") { $nom_user "AND micro.nom_util LIKE '%".$nom_util."%'"; $ok = true; }
if ($service !
"") { $service "AND micro.service LIKE '".$service."' "; $ok = true; }
if ($unite !
"") { $unite "AND micro.unite LIKE '".$unite."' "; $ok = true; }
if ($marque_ecran !
"") { $marque_ecran "AND
ecran.marque_ecran LIKE '".$marque_ecran."' "; $ok
true; $ecr true;
}
if ($garantie_ecran !
"") { $garantie_ecran "AND
ecran.garantie_ecran LIKE '".$garantie_ecran."' "; $ok
true; $ecr
true; }
if ($type_ecran !
"") { $type_ecran "AND ecran.type_ecran = '".$type_ecran."' "; $ok = true; $ecr = true; }
if ($date_ach_ecran !
"") { $date_ach_ecran "AND
ecran.date_ach_ecran LIKE '".$date_ach_ecran."' "; $ok
true; $ecr
true; }
if ($num_inv_ecran !
"") { $num_inv_ecran "AND
ecran.num_inv_ecran LIKE '".$num_inv_ecran."' "; $ok
true; $ecr
true; }
if ($date_affect_ecran !
"") { $date_affect_ecran "AND
ecran.date_affect_ecran LIKE '".$date_affect_ecran."' "; $ok = true;
$ecr = true; }
if ($num_serie_ecran !
"") { $num_serie_ecran "AND
ecran.num_serie_ecran LIKE '".$num_serie_ecran."' "; $ok
true; $ecr
true; }
if ($cpu !
"") { $cpu "AND uc.cpu LIKE '".$cpu."' "; $ok = true; }
if ($cad_cpu !
"") { $cad_cpu "AND uc.cad_cpu LIKE '".$cad_cpu."' "; $ok = true; }
if ($ram !
"") { $ram "AND uc.ram LIKE '".$ram."' "; $ok = true; }
if ($dram !
"") { $dram "AND uc.dram_uc LIKE '".$dram."' "; $ok = true; }
if ($dd !
"") { $dd "AND uc.dd LIKE '".$dd."' "; $ok = true; }
if ($se !
"") { $se "AND uc.se LIKE '".$se."' "; $ok = true; }
if ($lecteur !
"") { $lecteur "AND uc.lecteur LIKE '".$lecteur."' "; $ok = true; }
if ($dao !
"") { $dao "AND uc.dao LIKE '".$dao."' "; $ok = true; }
if ($adr_ip !
"") { $adr_ip "AND ip.ip LIKE '".$adr_ip."' "; $ok = true; $ip=true; }
if ($dns !
"") { $dns "AND ip.dns LIKE '".$dns."' "; $ok = true; $ip=true; }
if ($masque !
"") { $masque "AND ip.masque LIKE '".$masque."' "; $ok = true; $ip=true; }
if ($wins !
"") { $wins "AND ip.wins LIKE '".$wins."' "; $ok = true; $ip=true; }
if ($passerelle !
"") { $passerelle "AND ip.passerelle LIKE '".$passerelle."' "; $ok = true; $ip=true; }
if ($date_d
"") { $date_d "%"; }
if ($date_f
"") { $date_f "%"; }
if ($ok == true ) { // Si au moins un des critères a été renseigné
$req = "SELECT * FROM micro, uc "; // Création de la requête avec les table micro, uc et ecran
if ($ip == true) { // Ajout de la table IP dans la requête
$req .= ", ip ";
}
if ($ecr == true) {
$req .= ", ecran ";
}
$req .= "WHERE micro.ref_uc = uc.ref_uc "; // Jointures
if ($ip == true) { // Ajout des champs IP, DNS, PSRL, DNS et
WINS de la table IP dans la requête + joiture avec la table IP
$req .
"AND micro.ref_ip ip.ref_ip ";
$req .= $adr_ip." ";
$req .= $masque." ";
$req .= $passerelle." ";
$req .= $dns." ";
$req .= $wins." ";
}
if ($ecr == true) {
$req .
"AND micro.ref_ecran ecran.ref_ecran ";
$req .= $marque_ecran." ";
$req .= $type_ecran." ";
$req .= $garantie_ecran." ";
$req .= $num_inv_ecran." ";
$req .= $num_serie_ecran." ";
$req .= $date_ach_ecran." ";
$req .= $date_affect_ecran." ";
}
$req .= $num_uc." ";
$req .= $nom_user." ";
$req .= $service." ";
$req .= $unite." ";
$req .= $materiel." ";
$req .= $marque_uc." ";
$req .= $type_uc." ";
$req .= $num_inv_uc." ";
$req .= $num_serie_uc." ";
$req .= $date_ach_uc." ";
$req .= $date_affect_uc." ";
$req .= $garantie_uc." ";
$req .= $cpu." ";
$req .= $cad_cpu." ";
$req .= $dd." ";
$req .= $ram." ";
$req .= $dram." ";
$req .= $lecteur." ";
$req .= $se." ";
$req .= $dao." ";
$req .= "ORDER BY micro.num_uc";
} else { // Sinon, sélection de l'ensemble des micros
$req
"SELECT * FROM micro, uc WHERE micro.ref_uc uc.ref_uc ORDER BY num_uc";
}
$res = mysql_query($req);
$num = mysql_num_rows($res);
if ($res) {
if ($num == 0) {
echo 'Aucune fiche trouvée !!';
echo '[form_search_fiche.php?p=m Retour]';
} else
{
echo '<form name="selection" action="caract_micro.php" method="POST">';
echo '';
echo '----
Résultat de la
recherche, ';
if ($num == 1) {
echo '----
'.$num.' fiche
trouvée, ';
} else {
echo '----
'.$num.' fiches
trouvées, ';
}
echo '----
, ';
echo '----
';
echo '<table width="98%" border=0 cellspacing=0>';
echo '----
';
echo ', Choix</td>';
echo 'N° du micro, ';
echo 'Marque, ';
echo 'Type, ';
echo 'Utilisateur, ';
echo 'Service, ';
echo 'Unité, ';
echo '
';
echo '</td></tr><tr><td>';
?>
<?
echo '';
$_SESSION['tab_micro'] = array();
$i=0;
while ($ligne = mysql_fetch_array ($res))
{
$ref = $ligne[0];
$num_m = $ligne[1];
$marque = $ligne[16];
$type = $ligne[17];
$nom = $ligne[4];
$service = $ligne [2];
$unite = $ligne[3];
$_SESSION['tab_micro'][$i] = $ref;
//Selection du libellé long pour la marque
if ($marque != \"\") {
$req4=\"SELECT * FROM marque WHERE lbl_court_marque = '\".$marque.\"'\";
$res4=mysql_query($req4);
while ($ligne
mysql_fetch_array ($res4)) { $marque $ligne[2]; }
} else {
$marque = \" \";
}
//Selection du libellé long pour le type
if ($type != \"\") {
$req5=\"SELECT * FROM type_uc WHERE lbl_court_type = '\".$type.\"'\";
$res5=mysql_query($req5);
while ($ligne
mysql_fetch_array ($res5)) { $type $ligne[2]; }
} else {
$type = \" \";
}
//Affichage de la ligne correspondant à un micro
echo '----
';
echo ', ';
echo ''.$num_m.', ';
echo ''.$marque.', ';
echo ''.$type.', ';
echo ''.$nom.', ';
echo ''.$service.', ';
echo ''.$unite.', ';
$i++;
}
echo '
';
echo '</td></tr>';
echo '<tr><td height="5"></td></tr>';
echo '<tr><td align="center">    ';
echo '';
if ($_SESSION['grade'] == 'administrateur')
{
echo '    </td></tr>';
}
echo '<tr><td align="center"></td></tr>';
echo '<tr><td align="center">[print_search.php?req='.$req.' Imprimer]</td></tr>';
echo '</table>';
echo '</form>';
}
} else {
echo 'ERREUR';
echo '[body.php Retour]';
}
}
?>
</html>
Donc quelqu'un aurait il une solution
merci d'avance
Afficher la suite