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 :

[SQL] Problème de non-execution de requete


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [SQL] Problème de non-execution de requete
    Bonjour à tous,

    J'ai un problème : J'éxecute un SELECT dans PhpMyAdmin, elle me sort le résulat, tout vas bien. Seulement quand j'éxecute la même requête dans un fichier php elle ne marche pas :

    - Aucune erreurs affchées,
    - Pas de résultat stocké dans un mysql_fetch_array();
    - 0 enregistrements comptés dans un mysql_num_rows() (alors qu'il devrait y en avoir 1)


    J'ai vérifié tous les types de champs en rapport avec les données selectionnées, j'ai vérifié tous les noms de champs en rapport avec la requête, ainsi que leur longueur, enfin bref j'ai tout vérifier mais sur php ce ne marche pas et il ne me dit pas pourquoi...

    Voici la requête ():
    SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='Jean-paulette' AND prenom_adr='heinrich' AND rue_adr='exemple 89' AND npa_adr='929930'

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu peux nous montrer le code PHP qui effectue cette requete pour voir si on voit une erreur?

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Le voici (avec une connection correcte à la base de donnée avant):

    //test si l'adresse existe déja dans al base de donnée
    $test_adresse = mysql_query("SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='".$nom_adr."' AND prenom_adr='".$prenom_adr."' AND rue_adr='".$rue_adr."' AND npa_adr='".$npa_adr."'");

    $row_test_adresse = mysql_fetch_array($test_adresse);
    $id_adr = $row_test_adresse['id_adr']; //N'affiche rien

    $nbr = mysql_num_rows($test_adresse); //me retourne 0

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il faut toujours tester le retour de mysql_query pour s'assurer qu'il n'y a pas d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //test si l'adresse existe déja dans al base de donnée
    $test_adresse = mysql_query("SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr='".$nom_adr."' AND prenom_adr='".$prenom_adr."' AND rue_adr='".$rue_adr."' AND npa_adr='".$npa_adr."'") or die("Erreur sql :" . mysql_error());
    Peut-être qu'il y a un probleme d'apostrophes.

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai tester avec le 'or die', mais rien a faire, aucune erreurs.

    J'ai modifer la requête mais c'est toujours la même chose, dans mysql ca marche mais pas dans php :

    SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE nom_adr=...' AND prenom_adr='...' AND rue_adr LIKE CONVERT( _utf8 '...' USING latin1 ) COLLATE latin1_swedish_ci AND npa_adr='...'
    C'est bizarre tout ca ...

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    j'ai trouver la source du problème :

    C'est le champ rue_adr qui gène php mais pas PhpMyAdmin, ce que je fait avec lui :

    je lui insère une rue et un numéro (ex: Rue des exemples 89), il a comme type 'longtext'.

    voila le paramètre extrait :

    WHERE ... AND rue_adr LIKE CONVERT( _utf8 '".$rue_adr."' USING latin1 ) COLLATE latin1_swedish_ci
    2ème précision, le bout de code ci_dessus je l'ai pomper du code lorsqu'on fait un recherche sous PhpMyAdmin. J'ai essaier de rechercher une rue existante dans la base, et il me la retrouve!! Mais php de ne veu ou ne peu pas la faire, mais il ne génère pas d'erreur pour autant.

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 466
    Points : 4 655
    Points
    4 655
    Par défaut
    salut,

    1) t'as essayé un <SELECT * ...> tout bete ?
    2) t'as vérifié que ta requete était bien générée avec un echo $ta_reqeuete ?

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Alors je suis sur le cul ... si je fait le recherche comme ca (c'est le champ en gras qui posait problème:

    SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr='text AND nom_adr='text' AND prenom_adr='text' AND npa_adr='990942'
    ou comme ca

    SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr LIKE CONVERT( _utf8 'text' USING latin1 ) AND nom_adr='text' AND prenom_adr='text' AND npa_adr='990942'
    ben ca marche pas mais si je fait comme ca ca marche :

    SELECT id_adr, id_titre_adr, id_langue_adr FROM t_adresse WHERE rue_adr LIKE CONVERT( _utf8 '%text%' USING latin1 ) AND nom_adr='text' AND prenom_adr='text' AND npa_adr='66884'
    (la différence avec celle du dessus c'est les '%' ajouter en début et en fin de la string a rechercher).


    Alors voilà, c'est un problème qui restera à jamais mystérieux

    Merci de votre aide et bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2007, 15h05
  2. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54
  3. [C#] Requete non executés
    Par ducker88 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/07/2005, 10h55
  4. Pb d'execution de requete sql
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 11/05/2005, 10h19
  5. [SQL] problème pour faire ma requete
    Par seb.briet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/12/2004, 16h51

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