Salut,
A vrai dire je n'ai que parcouru, mais :
expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.2\www\recherche.php on line 156
=> la fonction attend une ressource et tu lui passes un bit ... sans doute un false.
On remonte donc :
$resultat=mysql_query($requete) <== retourne sous doute false
...
$requete= "SELECT * FROM `info_poste`,`imprimante`,`utilisateurs` WHERE (`info_poste.os` LIKE \"%$mot1%\") OR (`imprimante.nom_im` LIKE \"%$mot2%\") OR (`utilisateurs.login_utilisateur` LIKE \"%$mot3%\")";
}
... on arrête de remonter histoire de ne pas se prendre la tête ... c'est tellement plus simple de profiter de l'affichage des erreurs de PHP qu'il serait dommage de s'en passer, un petit :
Code PHP :
//execute la recherche
if (false === $resultat = mysql_query($requete)) {
die('erreur de la requête $requete :<br />'.$requete.'<br />l\'erreur est :<br />'.mysql_error());
Ce que je cherche à te montrer là n'est pas de la fainéantise (même si pour le coup je suis suis fatigué et n'ai pas pris le temps de lire intégralement le code) mais simplement un reflex de débogage qui fait gagner beaucoup de temps.
D'après le peu que j'ai lu, tu sembles avoir pas mal "d'erreur" dans ton code :
- tu ne testes pas les données POST provenant de l'utilisateur
- foreach($tab_mots as $mot)
{
$requete= "SELECT * FROM `info_poste`,`imprimante`,`utilisateurs` WHERE (`info_poste.os` LIKE \"%$mot1%\") OR (`imprimante.nom_im` LIKE \"%$mot2%\") OR (`utilisateurs.login_utilisateur` LIKE \"%$mot3%\")";
}
=> la variable $requete sera toujours égale au dernier élément du tableau $tab_mots, ce qui ne semble pas être ton but
- etc ... etc ...
Bref, commence par ce reflex qui consiste à entrer dans un contexte de débogage, en étudiant les messages d'erreur, en affichant les contenus des variables incriminées (echo, print_r, var_dump, ...) et en "blindant" le script de test (if (isset($_POST['trucBidule']) ...)
Cordialement,
Kohntark -