SQL Query Result im Frontend anzeigen

Hallo,

Ich habe eine relativ einfache Frage. Finde jedoch weder hier im Forum noch in der Dokumentation die passende Lösung.

Das Problem ist folgendermaßen. Ich möchte - für den Anfang - einfach nur mal Datensätze aus der Datenbank selecten und diese dann im Frontend anzeigen.

Der Select ist erfolgreich mit diesem Snippet durchgeführt worden:

    public function indexAction()
    {
          $sql = "SELECT name FROM s_articles_supplier LIMIT 5";
          $result = Shopware()->Db()->fetchAll($sql);
    }

Wie gebe ich die ausgewählten Werte nun aber im Frontend aus? Echo und print_r funktionieren leider nicht.

 

Ich habe hierfür ein weiteres Snippet gefunden im Forum allerdings funktioniert dieses nicht und benutzt auch die $this->View() Methode, die ich nicht wirklich verstehe und deswegen auch nicht weiß, was diese Commands eigentlich machen.

Das Snippet ist wie folgt:

$this->View()->loadTemplate( __DIR__."/../../Views/frontend/gutschein/index.tpl");
          $this->View()->modes = $result;

 

Ich vermute, dass hier irgendjemand schon Erfahrung damit gemacht hat.

Ich schätze mal, dass die Lösung irgendwie in diese Richtung geht https://developers.shopware.com/developers-guide/plugin-quick-start/#template-extensionWie ich die SQL Werte allerdings in die

$view->assign('name', 'value')

bringe weiß ich noch nicht.

Ich hoffe irgendjemand hat hiermit schon Erfahrung und kann mir helfen.

 

Beste Grüße,

Max Konrad

Ein print_r() oder echo wird ausgegeben - nur an anderer Stelle, als du wahrscheinlich vermutest. Schau dir doch mal das HTML an und suche nach deinem query. Ansonsten hast du noch eine ganze Reihe von Alternativen: Debugging Shopware

Viele Grüße

1 Like

So kannst du das in der IndexAction als Beispiel machen:

        $sql = "SELECT * FROM s_articles_supplier";
        $result = Shopware()->Db()->fetchAll($sql);
        $this->View()->sorder = $result;

Und dann kannst du dir das Array bspw. über {$sorder|print_r} im Template ausgeben lassen.

So wie ich das sehe, hast du das ja schon per „modes“ - also {$modes|print_r}

1 Like

@Aquatuning GmbH schrieb:

Ein print_r() oder echo wird ausgegeben - nur an anderer Stelle, als du wahrscheinlich vermutest. Schau dir doch mal das HTML an und suche nach deinem query. Ansonsten hast du noch eine ganze Reihe von Alternativen: https://developers.shopware.com/developers-guide/debugging/

Viele Grüße

Ich glaube ich habe mich etwas missverständlich ausgedrückt. Entschuldigung

Dass die print_r() und echo mir ganz am Ende etwas anzeigen weiß ich nur leider sieht der Nutzer dieses ja nicht.

Ich würde zum Beispiel gerne haben, dass eine Column durch ->fetchColumn() in einem < div > angezeigt wird o.ä.