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 :

résultat d'une requête exécutée avec PDO et avec PHPMyAdmin différent [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut résultat d'une requête exécutée avec PDO et avec PHPMyAdmin différent
    Bonjour,

    si j'exécute une requête SQL avec PDO, le fetch me retourne une valeur différente de celle que donne PHPMyAdmin, Pourquoi ?

    Mon code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
            $date1 = $year.'-'.$month.'-1';
    	$date2 = $year.'-'.$month.'-'.date('t', mktime(0, 0, 0, $month, 1, date('Y')));
     
    	$sql = '
    		SELECT DISTINCT DAY(event_date)
    		FROM calendar_event
    		WHERE event_date BETWEEN :date1 AND :date2';
     
    	$qid = $bdd->prepare($sql);
    	$qid->execute(array(
    		':date1' => $date1,
    		':date2' => $date2,
    	));
     
    	$result = $qid->fetchAll(PDO::FETCH_COLUMN);//var_dump($result);exit();

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

    1- que valent :
    • $date1 ?
    • $date2 ?

    2- quel est le format SQL de :
    • event_date ?

    2- $month.'-1'....
    A priori, j'aurais mis :
    Non ?

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    1- un var_dump de ces 2 variables donne :
    C:\wamp64\www\vhstest031217\includes\calendar.php:16:string '2018-03-01' (length=10)

    C:\wamp64\www\vhstest031217\includes\calendar.php:16:string '2018-03-31' (length=10)

    2-event_date est de type SQL date

    et j'ai remplacé -1 par -01. C'est effectivement plus propre mais ça ne change rien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    OK.

    Et quelle différence entre fetch et PHPMyAdmin ?
    • des lignes en plus ?
    • en moins ?
    • ...?

    Soit plus PRECIS, Laurent.... (dès le départ, ce serait mieux...)

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Si je décommente le var_dump de la ligne 15, ça donne

    array (size=1)
    0 => int 27

    alors que si j'exécute SELECT DISTINCT DAY(event_date) FROM calendar_event WHERE event_date BETWEEN '2018-03-01' AND '2018-03-31' dans PHPMyAdmin,

    + Options
    DAY(event_date)
    21
    1

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Je viens d'essayer sans préparer la requête, mais le problème reste :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$sql2='
    		SELECT DISTINCT DAY(event_date)
    		FROM calendar_event
    		WHERE event_date BETWEEN "'.$date1.'" AND "'.$date2.'"';var_dump($sql2);
    	$qid=$bdd->query($sql2);
     
    	$result=array();
    	$i=0;
    	while($val=$qid->fetch()) $result[$i++]=$val; var_dump($result);exit();

    Au cas où, voici un export de la table :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -- Structure de la table `calendar_event`
    --
     
    DROP TABLE IF EXISTS `calendar_event`;
    CREATE TABLE IF NOT EXISTS `calendar_event` (
      `event_id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
      `event_date` date NOT NULL,
      `event_time` time NOT NULL,
      `event_name` varchar(100) NOT NULL,
      `event_comment` text NOT NULL,
      `event_allday` tinyint(1) NOT NULL,
      PRIMARY KEY (`event_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1695 DEFAULT CHARSET=latin1;
     
    --
    -- Déchargement des données de la table `calendar_event`
    --
     
    INSERT INTO `calendar_event` (`event_id`, `event_date`, `event_time`, `event_name`, `event_comment`, `event_allday`) VALUES
    (1693, '2018-03-21', '00:00:00', 'bb', 'bb', 0),
    (1694, '2018-03-01', '00:00:00', 'ww', 'ww', 0);
    COMMIT;

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

Discussions similaires

  1. modifier le résultat d'une requête exécuté par un .bat
    Par int59 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 29/10/2015, 10h31
  2. Afficher le résultat d'une requête avec des côtes
    Par sweet_hell dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/10/2006, 10h32
  3. [Conception] Résultat d'une requête PHP dans un tableau avec lien ?
    Par DjMaC dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/04/2006, 20h37
  4. Pb résultats d'une requête avec ou sans Recordset
    Par fredeau dans le forum Access
    Réponses: 3
    Dernier message: 24/04/2006, 14h07
  5. Réponses: 3
    Dernier message: 16/10/2005, 11h53

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