Domanda

Ho un'azione con due richieste su un tavolo unico. I risultati delle richieste devono essere diversi.

Ma, il risultato è lo stesso per i miei due richieste e viene dalla mia seconda richiesta.

    // Récupération du (ou des) locataire(s) actuel(s) du logement
    $this->locataires = Doctrine_Query::create()
      ->from('logement l')
      ->leftJoin('l.Bail b')
      ->leftJoin('b.Locataire')
      ->where('l.id = ?', $request->getParameter('id'))
      ->andWhere('(b.datefin >= ?', date('Y-m-d', time()))
      ->orWhere("b.datefin = '0000-00-00')")
      ->execute();

    // Récupération du (ou des) locataire(s) précédent(s) du logement
    $this->locatairesprec = Doctrine_Query::create()
      ->from('logement l')
      ->leftJoin('l.Bail b')
      ->leftJoin('b.Locataire')
      ->where('l.id = ?', $request->getParameter('id'))
      ->andWhere('b.datefin < ?', date('Y-m-d', time()))
      ->andWhere("b.datefin != '0000-00-00'")
      ->orderBy('datedeb')
      ->execute();
È stato utile?

Soluzione 2

E forse non è il modo migliore, ma ho risolvere il problema per selezionare tutte le righe della mia tavola in una richiesta, e dopo, I sorta i risultati utilizzando PHP

Altri suggerimenti

Confrontare le due query che genera. Non so come si può raggiungere questo obiettivo in Dottrina 1. In Dottrina 2 è possibile attivare un registratore, quindi tutto SQL eseguito verrà scritto, ad esempio, lo stdout.

Un altra cosa.

Quando si utilizza il timestamp corrente in una query si shoud definire una variabile con il timestamp corrente e utilizzare questa variabile in entrambe le query. In questo caso sarebbe qualcosa di simile:

$currentTime = time();

// Récupération du (ou des) locataire(s) actuel(s) du logement
$this->locataires = Doctrine_Query::create()
  ->from('logement l')
  ->leftJoin('l.Bail b')
  ->leftJoin('b.Locataire')
  ->where('l.id = ?', $request->getParameter('id'))
  ->andWhere('(b.datefin >= ?', $currentTime)
  ->orWhere("b.datefin = '0000-00-00')")
  ->execute();

// Récupération du (ou des) locataire(s) précédent(s) du logement
$this->locatairesprec = Doctrine_Query::create()
  ->from('logement l')
  ->leftJoin('l.Bail b')
  ->leftJoin('b.Locataire')
  ->where('l.id = ?', $request->getParameter('id'))
  ->andWhere('b.datefin < ?', $currentTime)
  ->andWhere("b.datefin != '0000-00-00'")
  ->orderBy('datedeb')
  ->execute();

Non ci può essere un ritardo di (più di) una seconda tra l'esecuzione delle due affermazioni, il che rende le vostre domande inaffidabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top