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 :

requête mal transmise à Mysqul


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut requête mal transmise à Mysqul
    Bonjour à toutes et tous

    j'ai une requête en php qui doit être mal transmise à Mysql car elle fonctionne correctement PhpMyadmin quelque soit les variables mises mais lorsqu'elle est envoyé à partir de ma page PHP en fonction des variables Mysql renvoie ou ne renvoie pas de résultats.

    Je pense qu'il doit y avoir une mauvaise interprétation des jointures.

    Voici la requête envoyé de php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $larequete = "SELECT description, jour, heure, duree_h FROM activites";
    			$larequete .= " INNER JOIN types_activites_animateurs ON activites.id_Type_activite = types_activites_animateurs.id_type_activite";
    			$larequete .= " INNER JOIN saison_actuelle ON saison_actuelle.id_saison = activites.id_saison";
    			$larequete .= " INNER JOIN animateurs ON types_activites_animateurs.id_animateur = animateurs.ID";
    			$larequete .= " WHERE animateurs.prenom ='Guylaine' AND activites.num_jour = 2";
    //			$larequete .= " WHERE animateurs.prenom ='".$prenom."' AND activites.num_jour = $numJourCours";
    voici la requête copié dans phpMyadmin:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT description, jour, heure, duree_h FROM activites INNER JOIN types_activites_animateurs ON activites.id_Type_activite = types_activites_animateurs.id_type_activite INNER JOIN saison_actuelle ON saison_actuelle.id_saison = activites.id_saison INNER JOIN animateurs ON types_activites_animateurs.id_animateur = animateurs.ID WHERE animateurs.prenom ='Guylaine' AND activites.num_jour = 2
    Vous pouvez voir que j'ai essayé directement les valeurs des variables.
    Avec ces valeurs PhpMyadmin me renvoie bien 2 lignes de cours mais si c'est envoyé de php le retour est 0 ligne.

    Je ne sais pas si je suis clair mais ça me paraît complètement incompréhensible.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    est ce que vous avez essayé avec une requête "select" toute simple dans votre code ?

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Bonjour merci pour ton intérêt.

    je viens de trouver!

    dans ma base de donnée "description" est en UTF8 mais beaucoup de description ont des lettres accentués.

    lors des requêtes php vers mers mysql les résultat sont en ISO avec des caractères spéciaux.

    le retour des données était destiné à une application android, donc les données sont renvoyées avec json_encode vers mon appli android.
    Mais les données utilisées par json_encode doivent être en UTF8!!!!!

    J'ai donc résolu mon problème en ajoutant à la connexion "PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		$options = [
    		PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    		PDO::ATTR_EMULATE_PREPARES => false,
    		PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
    		];
     
    		try {
    			$conn = new PDO("mysql:host=$serveur;dbname=$bd", $login, $mdp, $options); 
    			return $conn;
    		}catch(PDOException $e){
    			print "Erreur de connexion PDO".$egetMessage();
    			die();			
    		}

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

Discussions similaires

  1. Changer une requête mal conçue
    Par tavarlindar dans le forum Requêtes
    Réponses: 11
    Dernier message: 25/05/2013, 05h20
  2. [GD] Session mal transmise pendant la création de l'image
    Par Sianobel dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/10/2009, 17h01
  3. [MySQL] Requête mal formée ?
    Par michaeljeru dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 06/06/2008, 17h40
  4. Requête mal formulée
    Par BMT_Benoît dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/09/2007, 20h28
  5. Réponses: 4
    Dernier message: 29/06/2005, 11h40

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