Requete SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete SQL

par Cyrano » 09 août 2006, 07:37

Non, ça, c'est la requête générée : si tu fais quelque chose comme :
echo($_POST['search']);
ça affiche quoi ?

par Invité » 08 août 2006, 23:50

Merci pour ta réponse.

Voilà la chaine demandées :

SELECT * FROM Imb_motcles WHERE ( motcle like '%parisandtoureffelorsport%' )

le but c obtenir :

SELECT * FROM Imb_motcles WHERE motcle LIKE "paris" AND motcle LIKE "tour effel" OR motcle LIKE "sport"


Merci pour votre aide.

Re: Requete sql suite

par Cyrano » 08 août 2006, 21:19

c vriament urgent.
Ça mon bon, on s'en cogne, ce n'est urgent que pour toi et on est pas une société de service, ce forum est animé par des bénévoles exclusivement, donc soit tu as de la chance et quelqu'un passe avec les capacités et l'envie de t'aider ou tu fais appel à un prestataire de service spécialisé.

Ceci dit :
-1- Récupérer la chaine et la structurer dans un tableau;
-2- Modifier chaque élément du tableau pour construire chaque clause WHERE et y ajouter éventuellement les joker "%";
-3- Recréer la chaîne avec les séparateurs;

Le problème, c'est le format dans lequel la chaîne est reçue : peux-tu nous mettre un copié/collé de la chaine telle qu'elle est reçus avant tout traitement ?

par Hubert Roksor » 08 août 2006, 21:13

À mon avis, oublie LIKE et regarde de ce côté: http://dev.mysql.com/doc/refman/5.0/en/ ... earch.html

Requete sql suite

par webdestination » 08 août 2006, 21:01

Merci pour votre réponse.

La requête générée par ce code est du type :

Code : Tout sélectionner

SELECT * FROM Imb_motcles WHERE ( motcle like '%parisandtoureffelandsport%' )
Alors que moi j'ai besoin d'une requête du type :

Code : Tout sélectionner

<mocle LIKE "paris" OR motcle LIKE "toureffel" AND motcle LIKE "sport">
merci pour votre aide, c vriament urgent.

par Cyrano » 08 août 2006, 20:49

Essaye donc comme ceci:
$search  = $_POST['search'];

$separateur = array(" ", "+");
$separateursql  = array(" "%'" and motcle like '%" ", " "%'" or motcle like '%" ");

$search = str_replace($separateur, $separateursql, $search);

$sql = "SELECT * FROM Imb_motcles WHERE ( motcle like '%". $search ."%' ) ORDER BY motcle ASC"; 

Requete SQL

par webdestination » 08 août 2006, 20:45

J'ai un formulaire de recherche qui contient une zone de texte et un bouton.
J'ai aussi une base de données mysql
Je veux créer une requête sql type google avec un nombre non limité de mot clés et d'opérateurs : exemple :
france et paris ou espagne et sport...


j'utilise le php comme language.

J'ai trouvé ce code mais çame créé deux problème :
$search = $_POST['search'];

$explode = explode(" ", $search);
$search = "motcle LIKE '%" . implode("%' OR motcle LIKE '%", $explode) . "%'";

$sql = "SELECT * FROM Imb_motcles WHERE ($search) ORDER BY motcle ASC";
1- il prend seulement OR comme opérateur, alors qu'il faut mettre l'opérateur récupéré de la zone de texte ( soit or , soit and ...)
2- Si j'ai un mot clé composé ( exemple : tour effel), il me separe tour et effel et me met : tour OR effel


Un ami m'a proposé ce code, mais ça génére une parse erreur :

$search  = $_POST['search'];

$separateur = array(" ", "+");
$separateursql  = array(" "%'" and motcle like '%" ", " "%'" or motcle like '%" ");

$search = str_replace($separateur, $separateursql, $search);

$sql = "SELECT * FROM Imb_motcles WHERE ( motcle like '%" $search "%'" ) ORDER BY motcle ASC";

Merci pour votre aide.