Produktoptionen und -gruppen aus MySQL in array für Smarty schreiben

print147

Grünschnabel
Ich möchte für einen Artikel eine Radio-Button-Liste mit Produktoptionen ausgeben. Die Funktion getProductOptions liefert auch das gewünschte Ergebnis. Allerdings muß ich die Radio-Buttons und die CSS-Anweisungen auch in die Funktion integrieren (hier nicht dargestellt). Es braucht dann nur noch die Variable $opt an Smarty übergeben zu werden.
Allerdings möchte ich die Formatierung nicht in PHP, sondern in Smarty abwickeln. Wie schreibe ich die Abfrageergebnisse in Arrays , die sich in Smarty bequem auslesen lassen? Wäre schön, wenn mir jemand weiterhelfen könnte.

PHP:
function getProductOptions($chgDir, $art_id)
{
    /*
    gewünschtes Ergebnis
    Lizenzen
    Radio-Button keine Auswahl + 0.00
    Radio-Button Lizenz A + 10.00
    Radio-Button Lizenz B + 20.00

    Copyrightvermerk entfernen
    Radio-Button keine Auswahl + 0.00
    Radio-Button Copyrightvermerk im Footer entfernen + 15.00
*/

    include($chgDir."admin/dbconnect.php");
    if(!empty($art_id))
    {
    $art_id     =   mysql_real_escape_string($art_id);
    $sql    =   "   SELECT DISTINCT optionsgruppen.optGrName";
    $sql    .=  "   FROM optionsgruppen, produktoptionen ";
    $sql    .=  "   WHERE produktoptionen.optGrID = optionsgruppen.optGrID ";
    $sql    .=  "   AND produktoptionen.art_id = $art_id ";
    //echo $sql."<br>";
    $res        =   @mysql_query($sql) or die(mysql_error());
    $num   =   @mysql_num_rows($res);
    //echo $num."<br>";
    mysql_query('SET NAMES "utf-8"');
    mysql_query("SET CHARACTER SET 'utf-8'");
    $opt    =   '';
    while($rows = mysql_fetch_array($res))
    {
        $opt    .=  ("<h5>".$rows['optGrName']."</h5>");
        $sql1     =  "   SELECT * FROM ";
        $sql1    .=  "   produktoptionen, optionen, optionsgruppen ";
        $sql1    .=  "   WHERE produktoptionen.prodOptID = optionen.optID ";
        $sql1    .=  "   AND produktoptionen.optGrID = optionsgruppen.optGrID ";
        //$sql1    .=  "   AND prodOpt.art_id = $art_id ";
        $sql1    .=  "   AND optionsgruppen.optGrName LIKE '$rows[optGrName]' ";
        $res1       =   @mysql_query($sql1) or die(mysql_error());
        $num1  =   @mysql_num_rows($res1);
        //echo $num1."<br>";
        mysql_query('SET NAMES "utf-8"');
        mysql_query("SET CHARACTER SET 'utf-8'");
        while($rows = mysql_fetch_array($res1))
        {
        $opt    .=  $rows['optName']." ".$rows['priceAddPref']." ".$rows['priceAdd']."<br>";
        }

    } //END while($rows = mysql_fetch_array($res))
    return $opt;
    $smarty=>assign('opt', $opt);
    $smarty=>display('productdetails.tpl');
    } //END if(!empty($art_id))
}
//Aufruf der Funktion:
echo getProductOptions('../', '1');
 

Anhänge

ANstelle von
PHP:
        $opt    .=  $rows['optName']." ".$rows['priceAddPref']." ".$rows['priceAdd']."
Kannst du ein Arra schreiben. Wie der für Smarty aussehen muss, weiss ich grad nicht
AUf alle Fälle gibt mein Beispiel ein Array der pro Zeile einen Eintrag hat zurück. DIeser Eintrag ist wiederum ein Array der dem $rows entspricht.
PHP:
$opt[] = $rows;
 
Zurück