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 :

Champ requête SQL qui n'apparaissent plus


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut Champ requête SQL qui n'apparaissent plus
    Bonjour,

    j'ai une requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT realization_address, realization_zip_code, realization_city FROM form WHERE idform= UN_ID_ICI
    Cette requete me remonte bien tout les champs quand je la saisie dans PHPMy Admin.
    Cependant, quand je l'utilise en PHP à travers PDO, certains champs n'apparaissent plus (ici le champ "realization_city").
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connexion=$this->connect();
    $requete="SELECT realization_address, realization_zip_code, realization_city FROM form WHERE idform= ?";
    $requete_prepare=$connexion->prepare($requete);
    $requete_prepare->execute(array($id_proj));
    $lignes=$requete_prepare->fetch(PDO::FETCH_OBJ);
    $connexion=null;
    ...
    //Affichage des champs 
    echo("Adresse : ".$lignes->realization_address."<br />");
    echo("CP :".$lignes->realization_zip_code."<br />");
    echo("Ville : ".$lignes->realization_city."<br />");
    Ce problème est apparu depuis que j'ai changé de serveur.

    Auriez vous une idée de la source du problème ?

    Merci !

  2. #2
    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 as controlé ce que contenait $lignes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Quand je fais un
    J'ai l'exception suivante :
    Catchable fatal error: Object of class stdClass could not be converted to string
    et quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo("Adresse : ".$lignes->realization_address."<br />");
    echo("CP :".$lignes->realization_zip_code."<br />");
    echo("Ville : ".$lignes->realization_city."<br />");
    Toutes les valeurs s'affichent sauf "realization_city", alors que ce champ apparait bien quand je tape la requête dans PHPMyAdmin.

  4. #4
    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
    Utilises var_dump() pas echo
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci de votre aide.

    Cela m'affiche ça :
    object(stdClass)#8 (3) { ["realization_address"]=> string(5) "test2" ["realization_zip_code"]=> string(5) "69001" ["form"]=> string(4) "Lyon" }
    Visiblement tout est bien remonté, seulement, "realization_city" à l'air de s'appeler "form" pour une raison inconnue.

    Quand je fais une requête par champs, tout à l'air de marcher également.

  6. #6
    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
    Ca te fais la meme chose avec une autre methode que FETCH_OBJ ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Je n'ai pas essayé, je vais voir ça avec Fetch_assoc.

    J'ai essayé avec d'autres requêtes, et là aussi les noms ont changé en cours de route.

    [edit]
    Même soucis :
    array(3) { ["realization_address"]=> string(5) "test2" ["realization_zip_code"]=> string(5) "69001" ["form"]=> string(4) "Lyon" }
    [/edit]

    [edit2]
    J'arrive à m'en sortir en utilisant "PDO::FETCH_NUM", mais il faut pas changer l'ordre de la requête SQL du coup, c'est embêtant.
    [/edit2]

    [edit3]
    Avec Fetch_num, au bout de 3 champs retournés, ça ne fonctionne plus non plus...
    [/edit3]

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Il me semble avoir vu, sur ce même forum une personne ayant rencontré un phénomène étrange, un peu comme le tient.

    Ca venait de la Bdd.
    Ca c'était résolu en faisant quelque opérations de maintenance sur la Bdd, de chaque table. (vérification, analyse, réparation, optimize, suppression des pertes).
    Des manips que PhpMyAdmin permet de faire.

    Si tu tente le coup : /!\ Backup


    As tu essayé de faire la même requête, mais en utilisant les fonctions mysql_*, ou mysqli_* ?
    Juste pour voir si ça ne viendrait pas de PDO, sait on jamais.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Je viens d'essayer de nettoyer la base, rien n'a changer, je vais tenter avec mysql_ , je vous tiens au courant.

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ce qui est très étonnant, c'est que le nom du dernier champ (qui devrait être realization_city) est form, il correspond au nom de la table.

    Pure suggestion, mais as tu essayé de faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `realization_address`, `realization_zip_code`, `realization_city` FROM `form` WHERE `idform` = ?
    As tu essayé de récupérer un autre champ en dernier, autre que realization_city ?
    Comme inverser les 2 derniers : SELECT realization_address, realization_city, realization_zip_code ... etc ...
    Est ce que le nom retourné pour le dernier est aussi form ?

    Est ce que ça le fait aussi pour les autres tables, autre que form ?


    C'est vraiment étrange comme phénomène en tout cas.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  11. #11
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Idem,
    j'ai mis des quottes, échanger les champs, le dernier s'appelle toujours "form"


    et pour la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT project_owner_name, project_owner_address, project_owner_tel FROM form WHERE idform=XXX
    j'ai le message :
    object(stdClass)#8 (5) { ["architect_agency_name"]=> string(9) "fergthtyh" ["architect_name"]=> string(4) "test" ["form"]=> string(5) "69000" ["concours"]=> string(4) "lyon" ["def"]=> string(6) "France" }
    où "concours" est le nom de la BDD, "def", j'en ai aucune idée.

    En utilisant mysql_ , ça fonctionne.

  12. #12
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ca ne s'arrange pas, c'est de pire en pire
    Et en le faisant sur une autre table que form, t'as essayé ?

    En utilisant mysql_ , ça fonctionne.
    Si tu remarque un fonctionnement normal avec les fonction mysql_*, alors c'est PDO qui pose problème.

    Vu que tu disais que tu as changé de serveur, as tu recherché les différences qu'il y aurait entre l'ancien et le nouveau, et particulièrement pour MySQL, Php, et PDO ?
    Il y a peut être une incompatibilité quelque part.

    Puis, en fin de compte, on se sais rien de ce qu'il pourrait se cacher derrière ta classe PDO.
    Est ce directement PDO ?
    Ou est-ce une abstraction, une classe étendue ?
    Il y a peut être des "surcharges" de méthodes qui fait qu'il y aurait des routines de code qui partiraient en "sucette", je ne sais pas.
    On peu tout envisager.

    Bref, il y a que toi qui peu trouver ce genre d'infos.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. requête sql qui joint deux champs dans une seule chaine
    Par marwacht dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/05/2011, 10h29
  2. [AC-2007] [Etat]Champs qui n'apparaissent plus à l'impression
    Par Mut dans le forum IHM
    Réponses: 1
    Dernier message: 25/03/2011, 19h07
  3. Réponses: 2
    Dernier message: 06/06/2005, 15h13
  4. Requête SQL qui me bloque
    Par David Guillouet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/04/2004, 14h52
  5. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52

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