Datenbankabfrage

nobody

Aktives Mitglied
16. Mai 2013
36
0
Paderborn
Hallo,

aktuell stehe ich etwas auf dem Schlauch. Ich habe den JTLShop3 mit 3.19 am laufen.

Ich habe eine zusätzliche Datenbanktabelle mit diversem Content mit dem aktuellem Datum, unterhalb des Shops.
Jetzt würde ich diesen Content gerne in meiner Artikelseite "artikel_inc_custom.tpl" darstellen.

Sehe ich das richtig, dass ich meine executeQuery Abfrage in die functions.php packen muss ?
Wenn ja hat jemand ein einfaches Beispiel ?

Im Forum komme ich leider nicht wirklich weiter.

Aktuell habe ich es so gemacht:
function.php
Code:
$contentdate = $GLOBALS['DB']->executeQuery('SELECT contentdate
                                                FROM `liefwallis` ',2);


$smarty->assign("contentdate",$contentdate);

artikel_inc_custom.tpl
Code:
Stand der Daten: {$contentdate}

Würde mich auch schon über Denkanstöße freuen, hoffe Ihr verzeiht mir mein nicht so gutes Wissen.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: Datenbankabfrage

Schau dir mal an, wie dein $contentdate ausschaut.

Code:
print_r($contentdate)

Dann weißt du wie du es im Template ansprechen musst. Du holst dir ein Array ;)
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: Datenbankabfrage

function.php

Code:
$contentdate = $GLOBALS['DB']->executeQuery('SELECT contentdate FROM `liefwallis` ',2);
[COLOR=#ff0000][B]print_r($contentdate);[/B][/COLOR]

$smarty->assign("contentdate",$contentdate);

PHP: print_r - Manual

Je nachdem wieviele Einträge enthalten sind, sollte die Struktur von $contentdate in etwa so aussehen:

Code:
Array
(
    [0] => stdClass Object
        (
            [contentdate] => 08.06.2015
        )

    [1] => stdClass Object
        (
            [contentdate] => 08.06.2015
        )

    [2] => stdClass Object
        (
            [contentdate] => 08.06.2015
        )

    [3] => stdClass Object
        (
            [contentdate] => 08.06.2015
        )

    [4] => stdClass Object
        (
            [contentdate] => 08.06.2015
        )
)

Im Template kannst du dann wie folgt darauf zugreifen:

{$contentdate|@debug_print_var} {* Equivalent zu print_r() in PHP *}

Code:
{foreach name=contentdates from=$contentdate item=contentdate}
    {$contentdate->contentdate}
{/foreach}
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: Datenbankabfrage

Kannst du mal einen Screenshot deiner Struktur von "liefwallis" posten?
 

nobody

Aktives Mitglied
16. Mai 2013
36
0
Paderborn
AW: Datenbankabfrage

Ah meine Schusseligkeit, hatte einen Tippfehler in der Syntax. Jetzt bekomme ich allerdings alle Einträge angezeigt. Möchte jedoch nur den passenden zur Artikelnummer. Das löse ich jetzt mit Order by oder?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: Datenbankabfrage

Dann muss "kArtikel" aber in deiner Abfrage auch berücksichtigt werden, was derzeit nicht der Fall ist. Vorher müsstest du in der function.php kArtikel zunächst mal ermitteln damit das übergeben werden kann.

Code:
$kArtikel = $GLOBALS['cParameter_arr']['kArtikel'];
if ($kArtikel > 0) {
    $contentdate = $GLOBALS['DB']->executeQuery("SELECT contentdate FROM liefwallis WHERE kArtikel = $kArtikel", 2);
    $smarty->assign("contentdate", $contentdate);
}