turk porno porno escort rokettube
Ergebnis 1 bis 6 von 6

Thema: ZF3 where->like

  1. #1
    Neuer Benutzer
    Registriert seit
    21.04.2017
    Ort
    Bayern
    Beiträge
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Standard ZF3 where->like

    Hallo zusammen,
    ich bin ziemlich neu was ZF angeht und bin grad leicht am verzweifeln an einer LIKE-Datenbankabfrage...

    Im ZF3-Doc find ich auch nichts dass mich wirklich weiter bringen würde drum würd ich mich freuen wenn ihr mir weiter helfen könntet.

    Folgendes steht grad bei mir:
    PHP-Code:
    $select $sql->select()
    ->
    from('tabelle')
    ->
    where->like($where$condition);

    $query $sql->buildSqlString($select);

    $data $this->db->query($query)->execute(); 
    $where und $condition übergeb ich beim funktionsaufruf.

    Im Doc verpacken die des in ne function im where irgendwie aber des erschließt sich mir auch nicht so ganz...

    Danke schonmal
    Geändert von Backendpirat (06.06.2017 um 12:19 Uhr)

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Willkommen im Forum!
    Zitat Zitat von Backendpirat Beitrag anzeigen
    $where und $condition
    „$where“ und „$condition“, denn die Methodenbeschreibung sagt etwas anderes:
    PHP-Code:
    public function like($identifier$like){} 
    Daher:
    PHP-Code:
    $select->from('tabelle')->where->like('feld''%Foobar%'); 

    In ein Blick in die Unit-Tests hilft ebenfalls: https://github.com/zendframework/zen...aster/test/Sql
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Backendpirat (06.06.2017)

  4. #3
    Neuer Benutzer
    Registriert seit
    21.04.2017
    Ort
    Bayern
    Beiträge
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Standard

    Hallo und Danke Kaiuwe

    funktioniert jetzt, würds gern verstehen wieso daher eine ergänzende Frage.

    $sql = der DB-Adapter
    PHP-Code:
    $select $sql->select()
        ->
    from('tabelle')
        ->
    where
        
    ->like($where"%$condition%"); 
    Was ist der Unterschied dazwischen? Sollte doch irgendwie aufs gleiche rauslaufen, hab meine Abfragen jetz alle wie oben, falls des aber Nachteile mit sich bringt dann nehm ich die untere Variante.

    PHP-Code:
    $select = new Select();
    $select->from('rezepte_base')
            ->
    where
            
    ->like($where"%$condition%"); 
    Vielen Dank

  5. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Backendpirat Beitrag anzeigen
    Was ist der Unterschied dazwischen? Sollte doch irgendwie aufs gleiche rauslaufen, hab meine Abfragen jetz alle wie oben…
    Grundsätzlich stimmen die Namen nicht und genau darum habe ich Probleme deinen Code zu verstehen:

    • SQL ist etwas anderes als ein Datenbankadapter
    • „Where“ ist etwas anderes als ein „Identifier“
    • „$condition“ ist etwas anderes als „Like“ / Wert


    Ein Datenbankadapter von zend-db kennt auch keine „select“-Methode. Ich weiß leider nicht, wie überhaupt bei dir etwas laufen kann.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  6. #5
    Neuer Benutzer
    Registriert seit
    21.04.2017
    Ort
    Bayern
    Beiträge
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Standard

    Ich glaub wir reden mit den variablen usw aneinander vorbei, zum besseren Verständnis mal eine komplette funktion:

    PHP-Code:
    public function getRezeptBase($where,$condition,$limit,$order)
    {

        
    $limit === $sqlLimit 1000000 $sqlLimit $limit;

        
    $sql = new Sql($this->db);

        if (
    $condition === 0)
        {
            
    $select $sql->select()
                ->
    from('rezepte_base')
                ->
    order($order)
                ->
    limit($sqlLimit);
        } else {
            
    $select $sql->select()
                ->
    from('rezepte_base')
                ->
    where(array(
                    
    $where => $condition,
                ))
                ->
    order($order)
                ->
    limit($sqlLimit);
        }

        
    $query $sql->buildSqlString($select);

        
    $data $this->db->query($query)->execute();

        
    $rezepte = [];

        foreach(
    $data as $row)
        {
            if (
    $data instanceof ResultInterface && $data->isQueryResult()) {
                
    $resultSet $this->RezepteBaseResultSet->initialize($data);
                
    $result $resultSet->current();
                
    $rezept $this->builder->buildRezeptBase($result);
                
    $rezepte[] = $rezept;
            }
        }

        return 
    $rezepte;


    Funktionsaufruf für die 5 neuesten Datensätze:
    PHP-Code:
    getRezeptBase('id',0,5,'timestamp DESC'); 
    Funktionsaufruf für alle Rezepte von User Backendpirat:
    PHP-Code:
    getRezeptBase('user','backendpirat',0,'timestamp DESC'); 
    Jetz verständlicher?

  7. #6
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Backendpirat Beitrag anzeigen
    Ich glaub wir reden mit den variablen usw aneinander vorbei…
    Das will ich wohl meinen!

    Irgendwie ist die Methode konfus:

    • als Parameter kann man jeden Datentyp übergeben
    • es wird immer ein Limit gesetzt, auch wenn keines benötigt wird
    • Code-Dopplung beim Erstellen des „Select“-Objekts
    • Fehler vorprogrammiert, da für „where“ und „order“ alles mögliche übergeben werden kann
    • die „if“-Abfrage innerhalb der Schleife ist falsch, diese sollte vorher ausgeführt werden


    Nimmt man den momentan Code-Auszug, dann könnte man auch einfach die „(Abstract)TableGateway“-Klasse einsetzen und sich den ganzen eigenen Code sparen.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Ähnliche Themen

  1. ZF3 Buch Zendframework-Center
    Von Marcus123 im Forum Zend Framework 3 Buch
    Antworten: 11
    Letzter Beitrag: 15.03.2017, 08:39
  2. Pdf generieren in ZF3
    Von codescratch im Forum ZF3 Allgemein
    Antworten: 1
    Letzter Beitrag: 13.02.2017, 20:39
  3. ZF3 für Embedded Linux
    Von T.Kalweit im Forum ZF3 Allgemein
    Antworten: 5
    Letzter Beitrag: 27.12.2016, 08:53
  4. ZF3 logging
    Von codescratch im Forum ZF3 Allgemein
    Antworten: 5
    Letzter Beitrag: 20.12.2016, 10:35
  5. ZF3 Installationsproblem
    Von ZendZwelch im Forum ZF3 Allgemein
    Antworten: 4
    Letzter Beitrag: 18.12.2016, 16:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •