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 :

mysql 5.7 PDO::FETCH_OBJ problème requete [PDO]


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
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut mysql 5.7 PDO::FETCH_OBJ problème requete
    Hello,

    J'ai un petit souci avec ma requette et comme je suis pas un AS en PDO::FETCH_OBJ j'ai besoin de votre avis.

    Voilà j'ai fait cette requette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            $valetOccupationtimearrival = DB::table('reservations')
                ->whereBetween('date_of_departure', [$date_arrival_less, $date_arrival_more])
                ->orWhereBetween('date_of_arrival', [$date_arrival_less, $date_arrival_more])
                ->where('reservation_type', '=', 'valet')
                ->where('payment_status', '=', 'completed')
                ->where('is_returned', '!=', '1')
                ->count();
    mais ça m'affiche même les payment_status "autre" car si je la mets en mysql normale sa donne ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM `reservations` WHERE `date_of_arrival` BETWEEN '$date_arrival_less' AND '$date_arrival_more' OR date_of_departure BETWEEN '$date_arrival_less' AND '$date_arrival_more'  AND `reservation_type` = 'valet'
    Mais moi en PDO je ne sais pas comment mettre en parenthèse mon between comme sur l'exemple ci-dessou ce qui rendrait ma requêtte juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM `reservations` WHERE (`date_of_arrival` BETWEEN '$date_arrival_less' AND '$date_arrival_more' OR date_of_departure BETWEEN '$date_arrival_less' AND '$date_arrival_more' ) AND `reservation_type` = 'valet'
    J'ai cherché mais rien trouvé

    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu utilises laravel mais pas PDO là. Pour grouper les deux clauses between avec un or:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            $valetOccupationtimearrival = DB::table('reservations')
                ->where(function($query){
    		$query->whereBetween('date_of_departure', [$date_arrival_less, $date_arrival_more])
    		->orWhereBetween('date_of_arrival', [$date_arrival_less, $date_arrival_more])
                })		            
                ->where('reservation_type', '=', 'valet')
                ->where('payment_status', '=', 'completed')
                ->where('is_returned', '!=', '1')
                ->count();
    A+.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Merci andry.aime,

    Ouai c'est bien Laravel, que je ne maîtrise pas, mais qui à l'aire bien compliqué je lit des cours mais je dois aussi travaillé dessus en attendant

    Sinon ça ne marche toujours pas, mais pas pour les mêmes raisons.
    Là j'ai deux erreur qui sont :

    ReflectionException in compiled.php line 1505:
    Class App\Repositories\ReservationRepository does not exist
    Et

    FatalThrowableError in ReservationRepository.php line 331:
    Parse error: syntax error, unexpected '}'
    pourtant la class ReservationRepository existe vue que c'est dans cette class que j'ai mis le bout de code que tu m'as données

  4. #4
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Hello je n'ai rien dit
    jâi trouvé l'erreur il manquait un ; et un use dans la requête

    donc voici ma requêt modifier et encore merci pour tous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $valetOccupationtimearrival = DB::table('reservations')
                ->where(function($query) use ($date_arrival_less,$date_arrival_more){
                    $query->whereBetween('date_of_departure', [$date_arrival_less, $date_arrival_more])
                    ->orWhereBetween('date_of_arrival', [$date_arrival_less, $date_arrival_more]);
                        })                  
                ->where('reservation_type', '=', 'valet')
                ->where('payment_status', '=', 'completed')
                ->where('is_returned', '!=', '1')
                ->count();

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

Discussions similaires

  1. [PDO] Problème de récupération, fetch(PDO::FETCH_OBJ) en cause ?
    Par telodo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/01/2010, 20h57
  2. [MySQL] Problème requete MYSQL
    Par mikael2235 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/08/2009, 19h23
  3. [MySQL] Problème requete imbriquée
    Par SrK dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/07/2007, 15h03
  4. Problême requete MySql avec Borland 6 c++
    Par Nissartis06 dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/03/2007, 18h25
  5. [MySQL] Problème requete SQL sur plusieurs tables
    Par Tiib_CD dans le forum Langage SQL
    Réponses: 30
    Dernier message: 21/12/2006, 16h52

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