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 :

Fatal error: PDO fetch() avec DATE_FORMAT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Fatal error: PDO fetch() avec DATE_FORMAT
    Bonjour,

    Voila mon problème,

    Ma requête sql fonctionnait correctement avant que j'insère les 'DATE_FORMAT' maintenant j'ai l'erreur 'Fatal error: Call to a member function fetch() on a non-object in' j'ai essayé plusieurs solution (prepare, execute, ... mais j arrive pas) Merci de m'aider

    Ma requète sql:

    Code : 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
    function newBookingRightMenu(){
    $db_connection= $objData->db_connect();
    try{
    $sql = "
      SELECT reservation_table.id_table, client.nom, 
        DATE_FORMAT(rs_data_bookings.book_date, '%d/%m/%Y %Hh%imin%ss') AS rs_data_bookings.book_start, 
        DATE_FORMAT(rs_data_bookings.book_start, '%d/%m/%Y %Hh%imin%ss') AS rs_data_bookings.book_start, 
        rs_data_bookings.mode_reservation, 
        rs_data_bookings.nbr_pers 
      FROM rs_data_bookings 
      INNER JOIN client ON rs_data_bookings.id_client = client.id_client 
      INNER JOIN reservation_table ON rs_data_bookings.book_id= reservation_table.book_id 
      ORDER BY rs_data_bookings.book_date DESC 
      LIMIT 0, 10
    ";
    $res=$db_connection->query($sql);
    }catch (PDOException $e){
    echo $e->getMessage();}
    return $res;
    }
    L'endroit où je récupère le résultat de la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $objData=new DataAccess();
    $list=$objData->newBookingRightMenu();
    while($listreserv = $list->fetch()){
    echo '<hr>Table: '.$listreserv['id_table'].' - '.$listreserv['nom'].' - '.$listreserv['book_date'].' - '.$listreserv['mode_reservation'].' - '.$listreserv['nbr_pers'].' - '.$listreserv['book_start'].'.<hr><br/>';
    }

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je vois déjà que tu as mis deux fois le même alias de colonne dans ta requête !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour l'aide

    J'ai rectifié dans mon code mais ça change rien. J'ai aussi changé ma function avec la requête et maintenant j'ai plus d'erreur mais aucun affichage. Je te remets ma function modifié et le page php qui appelle la requete..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	function newBookingRightMenu(){
    	$objData=new DataAccess();
    	$db_connection= $objData->db_connect();
    	try{	
        $sql =$db_connection->prepare( "SELECT reservation_table.id_table, client.nom, DATE_FORMAT(rs_data_bookings.book_date,'%d/%m/%Y %Hh%imin%ss') AS rs_data_bookings.book_date, DATE_FORMAT(rs_data_bookings.book_start,'%d/%m/%Y %Hh%imin%ss') AS rs_data_bookings.book_start, rs_data_bookings.mode_reservation, rs_data_bookings.nbr_pers FROM rs_data_bookings INNER JOIN client ON rs_data_bookings.id_client = client.id_client INNER JOIN reservation_table ON rs_data_bookings.book_id= reservation_table.book_id ORDER BY rs_data_bookings.book_date DESC LIMIT 0, 10");
    	$sql->execute();
    	}catch (PDOException $e){
    	echo $e->getMessage();}	
        return $sql;
    	}
    la page php

    Code : 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
    23
    24
    25
    26
     
    <?php
        session_start();
    	require_once '../classes/DataAccess.php';
     
    ?>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="styles.css">
    </head>
    <body style="text-align:center; ">
    <center>
    <?php
    $objData=new DataAccess();
    $list=$objData->newBookingRightMenu();
    while($listreserv = $list->fetch()){
    echo '<hr>Table: '.$listreserv['id_table'].' - '.$listreserv['nom'].' - '.$listreserv['book_date'].' - '.$listreserv['mode_reservation'].' - '.$listreserv['nbr_pers'].' - '.$listreserv['book_start'].'.<hr><br/>';
    }
    ?>
    </center>
    </body>
     
    </html>
    Merci d'avance pour ton aide...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    est ce que tu peu montrer ton DataAccess ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Voila ma classe DataAccess mais l'appel à une instance de la classe pour récupérer les identifiants connection à ma db fonctionne avec au moins une centaine de requètes dans mon application. Cette requête fonctionne parfaitement sans les "DATA_FORMAT"

    Merci pour ton aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class DataAccess {
     
       function db_connect(){	
        $db_connection = new PDO('mysql:host=localhost;dbname=pirate_db', 'root', '');
    	return $db_connection;
    	}
    }

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Voila problème résolu merci à Belsion

    alors il faut remplacer les deux AS rs_data_bookings.book_start
    AS rs_data_bookings.book_date


    par des alias ex AS bk_start et AS bk_date et ça fonctionne parfaitement

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par marcuzzz Voir le message
    Voila ma classe DataAccess mais l'appel à une instance de la classe pour récupérer les identifiants connection à ma db fonctionne avec au moins une centaine de requètes dans mon application. Cette requête fonctionne parfaitement sans les "DATA_FORMAT"

    Merci pour ton aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class DataAccess {
     
       function db_connect(){	
        $db_connection = new PDO('mysql:host=localhost;dbname=pirate_db', 'root', '');
    	return $db_connection;
    	}
    }
    ok, tes exceptions servent a rien et du coup ca ne reverra jamais d'erreur

    il faut rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $db_connection = new PDO('mysql:host=localhost;dbname=pirate_db', 'root', '');
    $db_connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

Discussions similaires

  1. [1.x] Fatal error: Class 'PDO' not found
    Par phpiste dans le forum Symfony
    Réponses: 5
    Dernier message: 14/07/2010, 12h40
  2. [PDO] Fatal error: Call to a member function fetch() on a non-object
    Par blopjerem dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 10h53
  3. Fatal error avec XMLReader et Dom
    Par Zikas-r dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2009, 10h44
  4. Fatal error avec les stdClass
    Par sebcrak dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2008, 23h02
  5. Réponses: 3
    Dernier message: 17/09/2006, 23h13

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