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 éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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.

  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
    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 éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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.

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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
    Par défaut
    D'où vient $value ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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
    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 éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309

  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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    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 éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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'";

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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).

  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, 20h30
  2. [Access] requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2007, 13h33
  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, 10h37
  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, 15h41
  5. [hibernate]requete SQL qui ne passe pas
    Par Gromitou dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/06/2006, 13h18

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