IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Construction dynamique d'une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut Construction dynamique d'une requête
    salut,

    est ce que il y a quelqu'un peu me dire ou se trouve le probleme dans cette requete de recherche,
    le probleme est que la requette et tou le script fonctionne trés bien lorsque je lui donne un seul mot pour la recherche, mais ne fonctionne pas avec deux mots et plus, il maffiche le message d'erreur suivant:

    Erreur de syntaxe près de 'ORWHERE nom_cli LIKE "%( le deuxiemme mot saisie)%" LIMIT 0, 10' à la ligne 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    $mots = filtre($cherchecli);
    $mots = strtolower($mots);
    $mots = trim($mots);
    $tab = explode(" " , $mots);
    $nbrmots  = count($tab);
     
     
     $maxRows_cherche = 10;
     $pageNum_cherche = 0;
     $startRow_cherche = $pageNum_cherche * $maxRows_cherche;
     
     
    $query_cherche = "SELECT mat_cli, nom_cli, prenom_cli, tel_cli, login_cli,secteur_act FROM client ";
     
    for($i=0 ; $i<$nbrmots; $i++)
    {
    	if(strlen($tab[$i]) >= 3){
    		$query_cherche.= "WHERE nom_cli LIKE \"%$tab[$i]%\" OR";
    		//$query_cherche.= "nom_cli LIKE \"%$tab[$i]%\" OR";
    	}
    }
    $query_cherche = preg_replace('#OR$|AND$#', '', $query_cherche); 
     
     
    $query_limit_cherche =sprintf("%s LIMIT %d, %d", $query_cherche, $startRow_cherche, $maxRows_cherche);
     
    $cherche = mysql_query($query_limit_cherche, $connexion) or die(mysql_error());
     
     $tout_cherche = mysql_query($query_cherche);
     $totalRows_cherche = mysql_num_rows($tout_cherche);
     
    $queryString_cherche = "";
    if (!empty($HTTP_SERVER_VARS['QUERY_STRING'])) {
      $params = explode("&", $HTTP_SERVER_VARS['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "rechemot") == false &&
    		stristr($param, "pageNum_cherche") == false && 
            stristr($param, "totalRows_cherche") == false &&
    		stristr($param, "maxRows_cherche") == false){
          array_push($newParams, $param);
        }
      }
      if (count($newParams) != 0) {
        $queryString_cherche = "&" . implode("&", $newParams);
      }
    }
    $queryString_cherche = sprintf("&totalRows_cherche=%d%s", $totalRows_cherche, $queryString_cherche);
    merci d'avance

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Citation Envoyé par rinuom99 Voir le message
    Erreur de syntaxe près de 'ORWHERE nom_cli LIKE "%( le deuxiemme mot saisie)%" LIMIT 0, 10' à la ligne 1
    Bonjour,

    Je pense que l'erreur retournée par MySQL est assez explicite
    Il te manque un espace lors de la création de ta requête entre le OR et le WHERE

  3. #3
    Membre éclairé Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Par défaut
    Merci beaucuop

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/10/2009, 20h24
  2. Construction dynamique d'une page aspx
    Par rad_hass dans le forum ASP.NET
    Réponses: 8
    Dernier message: 06/10/2008, 18h15
  3. [Dates] injecter une variable dynamique dans une requête
    Par omar071286 dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2008, 09h51
  4. Générer un champ dynamiquement avec une requête ?
    Par The Molo dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/06/2007, 15h59
  5. extraire un champ dynamique d'une requête
    Par forzaxelah dans le forum Bases de données
    Réponses: 7
    Dernier message: 14/05/2006, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo