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 :

probleme avec formulaire de recherche [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 73
    Points
    73
    Par défaut probleme avec formulaire de recherche
    Bonjour,

    j'eesaye de faire le traitement de ma recherche mais j'ai une erreur

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''. AND NOM='hgdhg''' at line 1


    voila le if, il doit avoir une erreur de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $NOM = $_POST['NOM'];
    $PRENOM= $_POST['PRENOM'];
    $NUMERO= $_POST['NUMERO'];
     
    $recherche="";
     
    if ($NOM!="")
     
    	{
    	 $recherche=$recherche." AND NOM='$NOM%'";
    	}
    est ce que vous voyez quel que chose ?

    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Et le requête SQL ?

    Toute façon, pour une recherche, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recherche=$recherche." AND NOM LIKE '$NOM%'";
    Par contre, s'il y d'autres champs de recherche, rajoute un espace à la fin, on ne sait jamais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recherche=$recherche." AND NOM LIKE '$NOM%' ";
    Dans ton formulaire de recherche, n'aurais-tu pas saisie ces caractères ' et " ?

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    il met toujours le meme message d'erreur

    non les touche ' et " sont bloquer dans les inputs text aucun caractere speciaux ne sont autorise ;

    bien vut en faite je'ai trois champs nom et prenom ( dans la meme table )

    numero dans une autre alors j'ai fait ca :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    $NOM = $_POST['NOM'];
    $PRENOM= $_POST['PRENOM'];
    $NUMERO= $_POST['NUMERO'];
     
    $recherche="";
     
    if ($NOM!="")
     
    	{ 
     
    	$recherche=$recherche." AND NOM LIKE \"$NOM%\" ";
     
    	}
     
    	elseif ($PRENOM!="")
     
    	{
     
    	 $recherche=$recherche." AND PRENOM LIKE \"$PRENOM%\" ";
     
     
    	}
     
    	elseif ($NUMERO!="")
     
    	{
     
    	 $recherche=$recherche." AND NUMERO=$NUMERO ";
     
    	}
     
     
     
     
    $query="SELECT * FROM generale, numerosda WHERE 1=1".$recherche JOINT generale, numerosda ON numerosda.id_generale=generale.id_generale
    ;
    echo htmlentities($query) ;
    $resultat= mysql_query($query) or die(mysql_error()."\n".$requete);
     
    while ($row=mysql_fetch_array($resultat))
     
    { 
    	 	   $NOM = 		$row['NOM'];
         		   $PRENOM = 		$row['PRENOM'];
         		   $SERVICE = 	$row['SERVICE'];
         		   $TRIGRAMME = 	$row['TRIGRAMME'];
         		   $LIGNE1 =		$row['LIGNE1'];
          		   $MESSAGERIE1 = 	$row['MESSAGERIE1'];
          		   $COMMENTAIRE = 	$row['COMMENTAIRE'];
           	   $DATE =		$row['DATE'];
          		   $ENREGISTRER = 	$row['ENREGISTRER'];
        		   $SNAPWARE =	$row['SNAPWARE'];
        		   $SERVICE =		$row['SERVICE'];
    		   $ID_ENTITE=	$row['ID_ENTITE'];
     
    echo "<br />".$TRIGRAMME."-".$SERVICE."-".$NOM;
     
    }
    ?>

  4. #4
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    J'aurais vu ça comme ça :

    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
    <?php
    $NOM    = trim($_POST['NOM']);
    $PRENOM = trim($_POST['PRENOM']);
    $NUMERO = trim($_POST['NUMERO']);
     
    $recherche = '';
     
    if ($NOM != '')
    {
        $recherche .= " AND NOM LIKE '$NOM%'";
    }
    if ($PRENOM != '')
    {
        $recherche . = " AND PRENOM LIKE '$PRENOM%'";
    }
    if ($NUMERO != '')
    {
        $recherche .= " AND NUMERO='$NUMERO'";
    }
     
    echo $recherche;
     
    $query = "SELECT * FROM generale, numerosda WHERE 1=1'.$recherche'";
    ?>
    Puis vérifie bien ce que te donne ta variable $query pour la tester sous MySQL.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    c'est exact avec un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="SELECT * FROM generale, numerosda WHERE 1=1 $recherche AND generale.ID_GENERALE=numerosda.ID_GENERALE ";
    c'est royal

    merci beaucoup

    c'etait le elseif qui me mettait dedans !!!

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

Discussions similaires

  1. probleme avec formulaire recherch
    Par dalleau974 dans le forum IHM
    Réponses: 1
    Dernier message: 11/10/2013, 15h03
  2. [AC-2007] Probleme avec formulaire recherche multi criteres
    Par reservoirfrog dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/11/2012, 16h10
  3. probleme avec formulaire
    Par rane dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 20
    Dernier message: 26/06/2006, 13h27
  4. Réponses: 4
    Dernier message: 25/04/2006, 11h10
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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