Page 1 sur 1

script adequat moteur de recherche

Posté : 03 juin 2014, 19:05
par speedy fernandez
BONJOUR A TOUS


j'ai crée un moteur de recherche dans un site une j'ai fait pour une entreprise de construction et lorsque l'internaute tape sa recherche, selon le code php que jai fait, le resultat exacte de sa recherche apparait, si aucun resultat n'est trouvé, des resultats correspondand a un des champ rempli lui sont proposés.
je vous montre mon code php.
<?php
$req_AND = mysql_query("select * from batiment where lieu='$lieu' and superficie='$superf' and prix='$prix'");
$nombre_de_resultat = mysql_num_rows($req_AND);
if($nombre_de_resultat == 0){
	echo "<p align=center><font color=red size=+2>AUCUN RESULTAT NE CORRESPOND A VOTRE RECHERCHE!</font></p>";
}
else{
	while($dnn_AND = mysql_fetch_array($req_AND)){
		?>
		<tr>
			<td bgcolor="#CCCCCC"><?php echo($dnn_AND['id']); ?></td>
			<td><?php echo htmlentities($dnn_AND['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
			<td width="152"><?php echo htmlentities($dnn_AND['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
			<td width="132"><?php echo htmlentities($dnn_AND['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
			<td bgcolor="#CCCCCC" width="152"><?php echo($dnn_AND['description']); ?></td>
 
 
		</tr>
	<?php
	}
}
?>
	<tr>
		</table>
		<BR/><BR/>
	<HR/>
	<p><font color="#006600" size="+2">Résultats qui pourraient vous interrésser...</font></p>
	</table>
<table width="596" border="1" align="center">
	<tr>
		<td width="70" align="center" bgcolor="#FFFFFF">ID</td>
		<td width="169" align="center" bgcolor="#FFFFFF">LIEU</td>
		<td align="center" bgcolor="#FFFFFF">SUPERFICIE</td>
		<td align="center" bgcolor="#FFFFFF">PRIX</td>
		<td align="center" bgcolor="#FFFFFF">DESCRIPTION</td>
 
	</tr>
<?php
$req = mysql_query("select * from batiment where lieu='$lieu' or superficie='$superf' or prix='$prix'");
while($dnn = mysql_fetch_array($req)){
	?>
	<tr>
		<td bgcolor="#FFFFFF"><?php echo($dnn['id']); ?></td>
		<td><?php echo htmlentities($dnn['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
		<td width="152"><?php echo htmlentities($dnn['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
		<td width="132"><?php echo htmlentities($dnn['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
		<td bgcolor="#CCCCCC" width="152"><?php echo($dnn['description']); ?></td>
	</tr>
<?php
}
?>
il ya une erreur que je voudrais que vous m'aidiez à resoudre.
avec mon code php que j'ai enoncé ci dessus, il fait ma recherche mais jai constater que le resultat obtenu avec ma requete AND affiche aussi parmi les resultats des propositions avec ma duxieme requete OR.
chose que je veux eviter.
AIDEZ MOI SIL VOUS PLAIT

Re: script adequat moteur de recherche

Posté : 03 juin 2014, 21:17
par Elie
Tu ne veux donc pas les memes resultats en bas ?

Je te conseille de stocker les resultats AND dans un array : $deja_affiche[] = $dnn_AND['id'];
Et dans ta 2eme requetes tu verifies si cet id a deja été afficher :
if(!in_array($dnn['id'], $deja_affiche)) // Si la réponse n'a pas déjà été afficher
 /* TON CODE */
}

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 10:47
par speedy fernandez
bonjour et merci pour ton aide....
c'est effectivement ça que je veux faire mais je ne sais pas comment mettre le resultat de mes requete dans un array.

c'est tout mon code que jai mis ci dessus...ou dois-je modifier sil vous plait.


merci

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 13:43
par Elie
<?php
$req_AND = mysql_query("select * from batiment where lieu='$lieu' and superficie='$superf' and prix='$prix'");
$nombre_de_resultat = mysql_num_rows($req_AND);
if($nombre_de_resultat == 0){
        echo "<p align=center><font color=red size=+2>AUCUN RESULTAT NE CORRESPOND A VOTRE RECHERCHE!</font></p>";
}
else{
        while($dnn_AND = mysql_fetch_array($req_AND)){
			$deja_affiche[] = $dnn_AND['id'];
                ?>
                <tr>
                        <td bgcolor="#CCCCCC"><?php echo($dnn_AND['id']); ?></td>
                        <td><?php echo htmlentities($dnn_AND['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td width="152"><?php echo htmlentities($dnn_AND['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td width="132"><?php echo htmlentities($dnn_AND['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td bgcolor="#CCCCCC" width="152"><?php echo($dnn_AND['description']); ?></td>
 
 
                </tr>
        <?php
        }
}
?>
        <tr>
                </table>
                <BR/><BR/>
        <HR/>
        <p><font color="#006600" size="+2">Résultats qui pourraient vous interrésser...</font></p>
        </table>
<table width="596" border="1" align="center">
        <tr>
                <td width="70" align="center" bgcolor="#FFFFFF">ID</td>
                <td width="169" align="center" bgcolor="#FFFFFF">LIEU</td>
                <td align="center" bgcolor="#FFFFFF">SUPERFICIE</td>
                <td align="center" bgcolor="#FFFFFF">PRIX</td>
                <td align="center" bgcolor="#FFFFFF">DESCRIPTION</td>
 
        </tr>
<?php
$req = mysql_query("select * from batiment where lieu='$lieu' or superficie='$superf' or prix='$prix'");
while($dnn = mysql_fetch_array($req)){
	if(!in_array($dnn['id'], $deja_affiche)) { // Si la réponse n'a pas déjà été afficher
        ?>
        <tr>
                <td bgcolor="#FFFFFF"><?php echo($dnn['id']); ?></td>
                <td><?php echo htmlentities($dnn['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td width="152"><?php echo htmlentities($dnn['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td width="132"><?php echo htmlentities($dnn['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td bgcolor="#CCCCCC" width="152"><?php echo($dnn['description']); ?></td>
        </tr>
<?php
}
}
?>
 
Dis moi si ca marche :)
Prochaine étape, apprendre le CSS3 et le HTML5 sans les balises <td> :)

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 14:13
par speedy fernandez
j'obtient ce message d'erreur:




Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ECOBAD_1\affichageter.php on line 218

qu'est ce que cela signifie et que dois-je faire?

merci

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 14:21
par Elie
Que la variable dans mysql_fetch_array($cette_variable_la); n'est pas une le resultat d'un mysql_query...
Bizarrement le code semble pourtant correcte.

Faudrait que tu me repostes ton code si tu l'a modifié et surtout me dire qu'elle est ta ligne 218...

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 14:56
par speedy fernandez
 <?php
	if (isset($_POST['lieu']) and isset($_POST['superf']) and isset($_POST['prix']))
	{
	$lieu = $_POST['lieu'];
	$superf = $_POST['superf'];
	$prix = $_POST['prix'];
	}
	else{
	$lieu = "" ;
	$superf = "";
	$prix = "";	
	}
	
	
	?>


  <table width="596" border="1" align="center">
       <tr>
        <td width="70" align="center" bgcolor="#CCCCCC">ID</td>
        <td width="169" align="center" bgcolor="#F9C334">LIEU</td>
        <td align="center" bgcolor="#F9C334">SUPERFICIE</td>
        <td align="center" bgcolor="#F9C334">PRIX</td>
      </tr>
      <?php
	
$req_AND = mysql_query("select * from batiment where lieu='$lieu' and superficie='$superf' and prix='$prix'");
$nombre_de_resultat = mysql_num_rows($req_AND);
if($nombre_de_resultat == 0){
        echo "<p align=center><font color=red size=+2>AUCUN RESULTAT NE CORRESPOND A VOTRE RECHERCHE!</font></p>";
}
else{
        while($dnn_AND = mysql_fetch_array($req_AND)){
                        $deja_affiche[] = $dnn_AND['id'];
                ?>
                <tr>
                        <td bgcolor="#CCCCCC"><?php echo($dnn_AND['id']); ?></td>
                        <td><?php echo htmlentities($dnn_AND['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td width="152"><?php echo htmlentities($dnn_AND['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td width="132"><?php echo htmlentities($dnn_AND['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                        <td bgcolor="#CCCCCC" width="152"><?php echo($dnn_AND['description']); ?></td>
 
 
                </tr>
        <?php
        }
}
?>
        <tr>
                </table>
                <BR/><BR/>
        <HR/>
        <p><font color="#006600" size="+2">Résultats qui pourraient vous interrésser...</font></p>
        </table>
<table width="596" border="1" align="center">
        <tr>
                <td width="70" align="center" bgcolor="#FFFFFF">ID</td>
                <td width="169" align="center" bgcolor="#FFFFFF">LIEU</td>
                <td align="center" bgcolor="#FFFFFF">SUPERFICIE</td>
                <td align="center" bgcolor="#FFFFFF">PRIX</td>
                <td align="center" bgcolor="#FFFFFF">DESCRIPTION</td>
 
        </tr>
<?php
$req = mysql_query("select * from batiment where lieu='$lieu' or superficie='$superf' or prix='$prix'");
while($dnn = mysql_fetch_array($req)){
        if(!in_array($dnn['id'], $deja_affiche)) { // Si la réponse n'a pas déjà été afficher
        ?>
        <tr>
                <td bgcolor="#FFFFFF"><?php echo($dnn['id']); ?></td>
                <td><?php echo htmlentities($dnn['lieu'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td width="152"><?php echo htmlentities($dnn['superficie'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td width="132"><?php echo htmlentities($dnn['prix'], ENT_QUOTES, 'UTF-8'); ?></td>
                <td bgcolor="#CCCCCC" width="152"><?php echo($dnn['description']); ?></td>
        </tr>
<?php
}
}
?>
1ere erreure: $nombre_de_resultat = mysql_num_rows($req_AND);

2e erreure: while($dnn = mysql_fetch_array($req))


les deux affiche la meme erreur que jai mentionner.

Re: script adequat moteur de recherche

Posté : 04 juin 2014, 18:14
par Elie
Pour moi c'est que tu ne te connecte pas a ta base de données avant ...
		// Connexion à la base
		$db = @mysql_connect('localhost', 'root', ''); 
		@mysql_select_db('liaison',$db);

Re: script adequat moteur de recherche

Posté : 05 juin 2014, 13:45
par speedy fernandez
bonjour,
je me conecte a ma base de données en entete de ma page avec
<?php
include('config.php');
?>

c'est un fichier de connection a ma base de donnees que j'ai appeler config.php

je veux essayer a afficher les resultats de mes requetes dans des array et faire la difference avec la fonction array_diff mais je ne sais pas trop comment m'y prendre.
cela pourrait resouddre le probleme.
merci

Re: script adequat moteur de recherche

Posté : 05 juin 2014, 15:04
par Elie
Désolé mais a part te corriger le truc en live sur TeamViewer, j'arrête les frais ici !

Re: script adequat moteur de recherche

Posté : 05 juin 2014, 16:55
par speedy fernandez
merci...je vais installer teamvewer et te faire signe

encore merci pour ton aide