Rechercher : dans
Par :

Probleme de requete SQL like "%%

Dernière réponse le 24 mar 2008 à 21:08:24 sebfitzmaurice, le 23 mar 2008 à 04:35:42 
 Signaler ce message aux modérateurs

Bonjour ! J'èspere que vous allez bien ! Voilà ! j'ai un sérieux problème.... je fais un moteur de recherche et je dois passer les valeurs du method post aux autres pages ?????

Comment faire??

Voici un exemple :Code : PHP - Afficher / masquer les numéros de ligne<?php
$start = ($page_courante * $entrees_par_page - $entrees_par_page);

$query = "SELECT * FROM `annonce` where `produit` like \"%$tab[0]%\" OR `categorie` like \"%$tab[0]%\" LIMIT $start, $entrees_par_page ";

$result = mysql_query($query);

while($row = mysql_fetch_array($result))
?>

{
resultat page=1:

SELECT * FROM `annonce` where `produit` like "%ski%" OR `categorie` like "%ski%" LIMIT 0, 2
donc le résultat de la page=1 est bon, mais pour la page=2

resultat page=2:

SELECT * FROM `annonce` where `produit` like "%%" OR `categorie` like "%%" LIMIT 2, 2

il n'y a rien ??? comment faire pour transferer la valeurs ?

Merci d'avance de porter attention à ma question !

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « probleme de requete SQL like "%% » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

giheller, le 23 mar 2008 à 09:39:51
  • +1

Bonjour,
je dois dire que je ne comprends pas bien ton soucis mais cependant deux remarques sur ce que tu écris.
1)
resultat page = 1;
ou
resultat page = 2;

ça donne quoi ? pas d'espace dans le nom d'une variable me semble-t-il.

2)
pour cette requête
SELECT * FROM `annonce` where `produit` like "%%" OR `categorie` like "%%" LIMIT 2, 2

%% veut dire qui commence par n'importe quoi et qui finit par n'importe quoi alors cela veut dire qu'on veut tout
pourquoi pas un seul % ou même aucun donc pourquoi ne pas coder :
SELECT * FROM `annonce` LIMIT 2, 2
JL,  m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail

Répondre à giheller

2

 sebfitzmaurice, le 24 mar 2008 à 21:08:24
  • +1

Bonjour et merci de porter intérêts à mon problème !

mais je crois que j'ai mal posé ma questions et ce que j'affiche plus haut c'était le résultat d'un echo $sql; ...désolé !

Pour être claire voici mon code:
<html>
<head>
<title>Moteur de recherche</title>
</head>
<body>

<?php
$sql_server="localhost";
$sql_user="root";
$sql_pass="";
$sql_bdd="sport";

mysql_connect("$sql_server","$sql_user","$sql_pass") or die("Erreur de connexion au serveur $sql_server");
mysql_select_db("$sql_bdd") or die("Erreur de connexion à la base de données $sql_bdd");

include 'pagination/pagination_moteur.php';

if(isset($_POST['recherche']) ) //Vérification de la présence d'un mot clef

{ //code 1
$_POST['recherche']=strtolower($_POST['recherche']);

$words = str_replace("+", " ", trim($_POST['recherche']));
$words = str_replace("\"", " ", $words);
$words = str_replace(",", " ", $words);
$words = str_replace(":", " ", $words);
$tab=explode(" " , $words);
$nb_words=count($tab);

$sql = " SELECT * FROM `annonce` where `produit` like \"%$tab[0]%\" OR `categorie` like \"%$tab[0]%\" OR `annonce` like \"%$tab[0]%\" ";

$resultat = mysql_query($sql);
$nb_entrees = mysql_num_rows($resultat);

$entrees_par_page = 5;
$total_pages = ceil($nb_entrees/$entrees_par_page);

if ($page=='page2') {
include('page2.php');}

if(!isset($_GET['page'])){
$page_courante = 1;
} else {
$page = $_GET['page'];
if ($page<1) $page_courante=1;
elseif ($page>$total_pages) $page_courante=$total_pages;
else $page_courante=$page;
}

$start = ($page_courante * $entrees_par_page - $entrees_par_page);


$query = " SELECT * FROM `annonce` where `produit` like \"%$tab[0]%\" OR `categorie` like \"%$tab[0]%\" OR `annonce` like \"%$tab[0]%\"LIMIT $start, $entrees_par_page ";

$result = mysql_query($query);

while($row = mysql_fetch_array($result))

{
$id =$row['nbrann'];
$date=$row['date'];
$nom=$row['nom'];
$prix=$row['prix'];
$email=$row['email'];
$code=$row['code'];
$annonce=stripslashes($row['annonce']);
$photo=$row['photo'];

echo "<table align=center>";
echo "<tr>"; echo "<td> Nom:$nom</td>"; echo"<td> </td>";echo "<th> Prix:$prix</th>"; echo "</tr>";
echo "<tr>"; echo "<TD><a href=\"mailto:$email\"> $email</a></td>"; echo"<td> </td>"; echo"<td> </td>"; echo "<tr>";
echo "<tr>"; echo "<td valign=top>Annonce:$annonce</td>";echo"<td> </td>"; if ($photo!=""){ echo "<th><img src=\"C:\wamp\www\ybet\image_annonce/$photo\"width=\"130\" height=\"130\"></th>";} else{echo "<th><center>no photos</center></th>";}echo "</tr>";
echo "<tr>"; echo "<td> Date:$date</td>"; echo "<td>  </td>";
echo"<th>";
echo"<form method=\"POST\" action=\"index.php?page=moteur\">";
echo"<input name=\"id\" type=\"hidden\" value=\"$id\">";
echo"<input type=\"submit\" value=\"look\">";
echo"</form>";
echo"</th>";
echo "</tr>";
echo "<br><br>";
echo "</table>";
}
echo $query;
echo "<br><br>";
echo pagination_moteur($total_pages,$page_courante);
}

?>
</body>
</html>

Répondre à sebfitzmaurice