Frage

ich eine Aktion mit zwei Anfragen auf einem einzigartigen Tisch. Die Ergebnisse der Anfragen müssen unterschiedlich sein.

Aber das Ergebnis ist das gleiche für meine beiden Anfragen und es kommt von meinem zweiten Anfrage.

    // 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();
War es hilfreich?

Lösung 2

Es ist vielleicht nicht der beste Weg, aber ich habe das Problem zu lösen, alle Zeilen meiner Tabelle auszuwählen, die in einer Anfrage und nach, sortiere ich die Ergebnisse mit PHP

Andere Tipps

Vergleichen Sie die beiden Abfragen es generiert. Ich weiß nicht, wie Sie dies in Lehre 1. In 2 Lehre erreichen können einen Logger aktivieren, so dass alle ausgeführten SQL wird geschrieben werden, zum Beispiel der Standardausgabe aus.

Eine andere Sache.

Wenn Sie die aktuellen Zeitstempel in einer Abfrage verwenden shoud Sie eine Variable mit dem aktuellen Zeitstempel definieren und verwenden diese Variable in beiden Abfragen. In diesem Fall wäre es so etwas wie:

$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();

Es kann eine Verzögerung von (mehr als) einem zweiten zwischen der Ausführung der beiden Aussagen, die Ihre Fragen unzuverlässig macht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top