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 :

Requete sql qui ne marche pas


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Requete sql qui ne marche pas
    Bonjour j'ai réalisé une requete sql mais elle ne fonctionne pas alors me suis trompé dans la syntaxe?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT id, ent, direct,img FROM table WHERE id = '$value'" );
    la value est une variable que je recupere plus haut.

    Si quelqu'un pouvait m'aider, merci.


    Bonne journée

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    pouvez-vous préciser "ne fonctionne pas" ?
    Qu'attendez-vous de la requête ?
    Que contient $value ?
    Quelle est la structure de la table ? (qui j'espère ne s'appelle pas "table")

    Au passage, préférez mysqli_query à mysql_query qui est obsolète à partir de PHP 5.5 et inexistant en PHP 7.
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux être plus précis que "ne fonctionne pas" ?

    Si ton id est numérique, il n'a pas besoin d'apostrophes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT id, ent, direct,img FROM table WHERE id = " . intval($value));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut
    Alors pour ne fonctionne pas, c'est à dire que rien ne se passe....

    J'attendais de la requete qu'elle m'affiche une image en fonction d'un clic sur une autre image (qui a une valeur : value).

    Ensuite $value c'est du texte.

    Non non la table ne s'appelle pas table et la structure c'est basique id, valeur, date.

    Et quand je remplace '".$value."' par une valeur dans la base de donnée ça fonctionne.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    D'où ma question :
    Citation Envoyé par Christophe P. Voir le message
    Que contient $value ?
    Edition :
    Et la question de sabotage sur le type de id.
    Christophe

    Pensez à mettre quand c'est le cas.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Requete sql qui ne marche pas
    Il contient un varchar mais j'ai fais un echo de la variable $value est il me retourne \'texte\'. Pour le texte c'est bon mais en trop j'ai les antislash et guillemet....

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'où vient $value ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Requete sql qui ne marche pas
    de la même page php que je poste en cliquant sur une image


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://www.siteweb.fr/page2.php?name='zorro' & valeur='1'"><img src="im/bt1.png" onmouseover="this.src='im/bt2.png'" onmouseout="this.src='im/bt1.png'" width="462" height="150" align="left" /></a>

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu travailles sûrement avec un vieux serveur PHP qui a toujours les "magic quotes" actifs.

    Il faut les désactiver :

    http://php.net/manual/fr/security.ma....disabling.php

    Concernant la requête, il faut plus de sécurité que tu n'en as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT id, ent, direct,img FROM table WHERE id = '" . mysql_real_escape_string($value) . "'");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Requete sql qui ne marche pas
    Et j'ai mis une fonction pour enlever les magic quotes mais ça ne marche toujours pas....

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est que ta fonction n'est pas bonne ou que tu l'as mal utilisée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Christophe

    Pensez à mettre quand c'est le cas.

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon résumons :
    Le problème c'est que ta requête fonctionne mais ne renvoie aucun résultat quand tu l'exécutes avec $value. (si tu remplaces $value par une valeur en dur qui existe dans la base, ça renvoie bien les résultats attendus)
    $value est alimenté à partir de l'URL par quelque chose du genre $value=$_GET['valeur'].
    C'est bien ça ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    "c'est en faisant n'importe quoi... qu'on devient n'importe qui."
    Rémi Gaillard
    Manifestement, tu t'es arrété à la 1ère partie de la citation...

    Ensuite $value c'est du texte.
    Non non la table ne s'appelle pas table et la structure c'est basique id, valeur, date.
    • "Ca ne marche pas..."*
    • id = $value alors que $value est du texte
    • la table ne s'appelle pas "table" (alors que tu écris "table" dans la requête)
    • ...
    • on n'a toujours pas vu la structure de la table
    • ...

    C'est du grand n'importe quoi.

    1/ dans une "bonne" structure de table, l'index (id) est auto-incrémenté : c'est un entier, UNIQUE.
    2/ DONC, c'est lui qu'on utilisera pour identifier formellement une ligne.

    Mais il me semble qu'on t'a déjà dit tout ça...

    * On t'a aussi parlé de "débogage de base", non ?

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut
    Le echo req; me donne un Resource id #3....

    Oui celira c'est en $value=$_POST['valeur'].

    OUI jreaux62 pour l'index (id) il est auto-incrémenté : c'est un entier unique.
    Et non j'ai pas entendu parlé de debogage de base...

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si l'id est autoincrementé pourquoi tu nous dis que c'est un varchar et que tu les compares avec 'text' ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Je me suis mal exprimé. Que donne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "SELECT id, ent, direct,img FROM table WHERE id = '$value'";
    Christophe

    Pensez à mettre quand c'est le cas.

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Requete sql qui ne marche pas
    En retour j'ai SELECT id, ent, direct,img FROM table WHERE id = '\'1\"

  19. #19
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Citation Envoyé par Marc31 Voir le message
    En retour j'ai SELECT id, ent, direct,img FROM table WHERE id = '\'1\"
    Donc maintenant vous savez d'où vient le problème : il y a des quotes et des anti-slash-quote en trop ; vous n'avez plus qu'à les enlever (ou plus précisément, ne pas les mettre).
    Christophe

    Pensez à mettre quand c'est le cas.

  20. #20
    Invité
    Invité(e)
    Par défaut
    DEBOGAGE DE BASE :

    • afficher les variables : echo ...;
    • afficher les array: var_dump(...);
    • mettre des points de controle dans le code pour voir "où ça passe" et "où ça casse"
    • ...

    + éviter les : "Ca ne marche pas..."


    N.B. Ca t'ennuierait vraiment de faire PLUS D'UNE SEULE PHRASE à la fois ????

Discussions similaires

  1. [Oracle] Requete sql qui ne passe pas
    Par Sh4dow49 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/07/2008, 19h30
  2. [Access] requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2007, 12h33
  3. requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/03/2007, 09h37
  4. [MySQL] requete sql qui ne donne pas le bon array
    Par easyjava dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/11/2006, 14h41
  5. [hibernate]requete SQL qui ne passe pas
    Par Gromitou dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/06/2006, 12h18

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