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

Requêtes MySQL Discussion :

concatenation dans requette mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut concatenation dans requette mysql
    salut à tous,

    voilà je fais un truc con mais, j'y arrive pas ....

    j'ai 3 tests et selon si chacun est validé ma requette sql change de forme
    if(!empty($Nom))
    {
    $requete="SELECT * FROM agents WHERE Nom LIKE '$Nom%'";
    }

    if(!empty($CodeAlliance))
    {
    $requete="SELECT * FROM agents WHERE CodeAlliance LIKE '$CodeAlliance%'";
    }

    if(!empty($IdEntite))
    {
    $requete="SELECT * FROM agents WHERE IdEntite='$IdEntite'";
    }


    Ensuite j'ai 2 endroits ou je me sert de la requette voulue :

    $query=$requete;
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());


    et

    $res = mysql_query('$requete', $link) or die("Erreur MySQL: ".mysql_error($link));


    mais le probleme est que
    1: j'ai un message d'erreur me demandant de revoir ma requette mais elle fonctionne tout de même

    2: les LIKE ....% ne fonctionne pas ! cela m'affiche tout ou presque

    3: pour mon WHERE IdEntite=.... Idem cela ne m'affiche plusieurs reponse.

    Je en sais pas si cela vient de probleme de ' ou de " ... si qqun à une idée.


    Merci d'avance

  2. #2
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Met une balise code autour de ton code s'il te plait et après on regardera.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    <?php
    require_once("../Connection/Connection.php");

    $Nom=isset($_POST["Nom"])?$_POST["Nom"]:"";
    $Nom=strtoupper($Nom);

    $CodeAlliance=isset($_POST["CodeAlliance"])?$_POST["CodeAlliance"]:"";
    $CodeAlliance=strtoupper($CodeAlliance);

    $IdEntite=isset($_POST["IdEntite"])?$_POST["IdEntite"]:"";

    if(!empty($Nom))
    {
    $requete="SELECT * FROM agents WHERE Nom LIKE '$Nom%'";
    }

    if(!empty($CodeAlliance))
    {
    $requete="SELECT * FROM agents WHERE CodeAlliance LIKE '$CodeAlliance%'";
    }

    if(!empty($IdEntite))
    {
    $requete="SELECT * FROM agents WHERE IdEntite='$IdEntite'";
    }


    $query=$requete;
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
    $data=mysql_fetch_array($result);


    $res = mysql_query('$requete', $link) or die("Erreur MySQL: ".mysql_error($link));
    $nb_enreg = mysql_num_rows($res);


    ?>

  4. #4
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Bon, édite ton dernier post, sélectionne ton code avec ta souris, au dessus du textarea dans lequel on tape les messages, il y a des boutons (B, i, u Quote, etc...), appuie sur le bouton "Code" et renvoie ton message stp.

  5. #5
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    encore une fois, lorsque tu poste ton code regarde au dessus tu as des balise"[code]". Applique les s'il te plait.
    Comment faire: tu cliques sur la balise, insere ton code et recliques la balise et Hop c'est fait
    Arrrgh encore grille. C'est la deuxieme fois aujourd'hui

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    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
     
    require_once("../Connection/Connection.php"); 
     
    $Nom=isset($_POST["Nom"])?$_POST["Nom"]:""; 
    $Nom=strtoupper($Nom); 
     
    $CodeAlliance=isset($_POST["CodeAlliance"])?$_POST["CodeAlliance"]:""; 
    $CodeAlliance=strtoupper($CodeAlliance); 
     
    $IdEntite=isset($_POST["IdEntite"])?$_POST["IdEntite"]:""; 
     
    if(!empty($Nom)) 
    { 
    $requete="SELECT * FROM agents WHERE Nom LIKE '$Nom%'"; 
    } 
     
    if(!empty($CodeAlliance)) 
    { 
    $requete="SELECT * FROM agents WHERE CodeAlliance LIKE '$CodeAlliance%'"; 
    } 
     
    if(!empty($IdEntite)) 
    { 
    $requete="SELECT * FROM agents WHERE IdEntite='$IdEntite'"; 
    } 
     
     
    $query=$requete; 
    $result = mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error()); 
    $data=mysql_fetch_array($result); 
     
     
    $res = mysql_query('$requete', $link) or die("Erreur MySQL: ".mysql_error($link)); 
    $nb_enreg = mysql_num_rows($res);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    Je savais pas , désolé, je le ferais à l'avenir.

  8. #8
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Salut c'est quoi ton message d'erreur et que trouve t on dans $query juste avant l'execution. Ca sera plus simple pour aider.

  9. #9
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Y a pas de mal

    1: j'ai un message d'erreur me demandant de revoir ma requette mais elle fonctionne tout de même
    Tu peux nous le poster ce message? (utilise le bouton Quote)

    2: les LIKE ....% ne fonctionne pas ! cela m'affiche tout ou presque
    Euh... moi je pense plutôt à un problème avec ce à quoi tu compares... vérifies ce que tu as derrière ton like

    3: pour mon WHERE IdEntite=.... Idem cela ne m'affiche plusieurs reponse.
    Idem

    une astuce, fais un echo de la requete qui est envoyée à la base, comme ça tu peux vérifier la syntaxe, la tester directement dans ta base et nous la poster au besoin...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    il me fou çà :

    Erreur MySQL: 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 '$requete' at line 1

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    J'ai tésté la requête il me revoie cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM agents WHERE Nom LIKE 'BE%'
    je fais ma comparaison avec le champ Nom de ma table agents.

  12. #12
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    d'ou viens ce $link et a quoi correspont-il?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    as tu essayé de fairte un echo de ta requête avant de l'exécuter?
    L'erreur que tu obtiens est une erreur de syntaxe

  14. #14
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $res = mysql_query('$requete', $link) or die("Erreur MySQL: ".mysql_error($link));
    Les quotes autour de $requete sont en trop !

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    illegalsene j'ai testé ton code, l'erreur est partie maintenant j'ai cela :


    Erreur MySQL: Query was empty

    mais il m'affiche quand même les résultats (certains toujours en trop)[/quote][/code]

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    Le $link vient d'un requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $link = mysql_connect($dbhost,$dbuser,$dbpass)or die("Erreur de connexion: ".mysql_error($link));

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    envoie ta requête

  18. #18
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Quel exemple de résultats en trop pour quelle requete?

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 46
    Points
    46
    Par défaut
    Bah pour une recherche commençant par BE il me renvoie les Noms commencant par :

    MO
    DDA
    JEAN

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    peux tu envoyer l'echo de ta requête

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2009, 19h14
  2. [MySQL] problème de variable dans requette mysql
    Par luc648 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/04/2009, 14h15
  3. variables tableau dans requettes mysql ... et affichage
    Par mulbek dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/10/2005, 16h29
  4. Variables dans texte issu de requette mysql
    Par thierry69000 dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/09/2005, 23h42
  5. Réponses: 6
    Dernier message: 05/08/2004, 13h15

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