Ein ähnliches Problem hab ich ja schon mal vor einigen Wochen gehabt.
Nun habe ich das Script noch etwas erweitert so dass es nun auf Templates basiert.
Mein neues Problem ist folgendes:
Alle aus der Datenbank gewählten Anbieter werden aufgelistet (funktioniert fehlerfrei).
Zu jedem Anbieter(anbietername) sollen nun die entsprechenden Info-Datensätze (unterschiedlich viele) ausgegeben werden.
Zu jedem Anbieter, zu dem Infos verfügbar sind, werden Infos(infoname,info) ausgegeben, jedoch zu jedem Anbieter dieselben Info-Datensätze (Das sind die Info-Datensätze zum letzten Anbieter, zudem Infos verfügbar sind.)
Zu Anbietern, zu denen keine Infos verfügbar sind, soll eine entsprechende Meldung (NOANBIETERINFOS) ausgegeben werden.
Das Template-Script
Aufbau der HTML-Template-Datei viewpage.html:
[CONTINUEANBIETER]
[CONTINUEANBIETERHEADER][ANBIETERNAME][/CONTINUEANBIETERHEADER]
[CONTINUEANBIETERINFOS][INFONAME][INFO][/CONTINUEANBIETERINFOS]
[/CONTINUEANBIETER]
Wahrscheinlich ist's wieder nur ne Kleinigkeit, aber als Newbie komm ich einfach nicht drauf.
Nun habe ich das Script noch etwas erweitert so dass es nun auf Templates basiert.
Mein neues Problem ist folgendes:
Alle aus der Datenbank gewählten Anbieter werden aufgelistet (funktioniert fehlerfrei).
Zu jedem Anbieter(anbietername) sollen nun die entsprechenden Info-Datensätze (unterschiedlich viele) ausgegeben werden.
Zu jedem Anbieter, zu dem Infos verfügbar sind, werden Infos(infoname,info) ausgegeben, jedoch zu jedem Anbieter dieselben Info-Datensätze (Das sind die Info-Datensätze zum letzten Anbieter, zudem Infos verfügbar sind.)
Zu Anbietern, zu denen keine Infos verfügbar sind, soll eine entsprechende Meldung (NOANBIETERINFOS) ausgegeben werden.
PHP-Code:
$sql = "SELECT anbietername FROM anbieter;
$resultanbieter = mysql_query($sql,$connection);
echo mysql_error();
if (mysql_num_rows($resultanbieter) != 0)
{
$i = 0;
while(list($anbietername[$i]) = mysql_fetch_row($resultanbieter))
{
$sqlinfos[$i] = "SELECT infoname,info FROM anbieter_infos WHERE anbieterid='$anbieterid[$i]' ";
$resultinfos[$i] = mysql_query($sqlinfos[$i],$connection);
echo mysql_error();
if (mysql_num_rows($resultinfos[$i]) != 0)
{
$noanbieterinfos[$i] = 0;
$j = 0;
while(list($infoname[$j],$info[$j]) = mysql_fetch_row($resultinfos[$i]))
$j++;
}
else
{
$noanbieterinfos[$i] = 1;
}
$i++;
}
$noanbieter = 0;
}
else
{
$noanbieter = 1;
}
include "viewpage.php";
}
Das Template-Script
PHP-Code:
<?
$template = "";
$fp = fopen("templates/viewpage.html",r);
while (!feof($fp))
{
$template .= fgets($fp,filesize("templates/viewpage.html"));
}
preg_match("/\[CONTINUEANBIETER\](.*?)\[\/CONTINUEANBIETER\]/is",$template,$anbieter);
preg_match("/\[CONTINUEANBIETERHEADER\](.*?)\[\/CONTINUEANBIETERHEADER\]/is",$template,$anbieterheader);
preg_match("/\[CONTINUEANBIETERINFOS\](.*?)\[\/CONTINUEANBIETERINFOS\]/is",$template,$anbieterinfo);
if ($noanbieter == 0)
{
$i = 0;
$insert = "";
while ($anbietername[$i] != "")
{
$insert2 = $anbieterheader[1];
$insert2 = str_replace("[ANBIETERNAME]",$anbietername[$i],$insert2);
$insert .= $insert2;
if ($noanbieterinfos[$i] == 0)
{
$j = 0;
$insertj = "";
while ($infoname[$j] != "")
{
$insert3 = $anbieterinfo[1];
$insert3 = str_replace("[INFONAME]",$infoname[$j],$insert3);
$insert3 = str_replace("[INFO]",$info[$j],$insert3);
$insert .= $insert3;
$j++;
}
$template = preg_replace("/\[CONTINUEANBIETERINFOS\](.*?)\[\/CONTINUEANBIETERINFOS\]/is",$insert,$template);
$template = preg_replace("/\[NOANBIETERINFOS\](.*?)\[\/NOANBIETERINFOS\]/is","",$template);
}
else
{
$template = preg_replace("/\[NOANBIETERINFOS\](.*?)\[\/NOANBIETERINFOS\]/is","\\1",$template);
$template = preg_replace("/\[CONTINUEANBIETERINFOS\](.*?)\[\/CONTINUEANBIETERINFOS\]/is","",$template);
}
$insert .= "<p>";
$i++;
}
$template = preg_replace("/\[CONTINUEANBIETER\](.*?)\[\/CONTINUEANBIETER\]/is",$insert,$template);
$template = preg_replace("/\[NOANBIETER\](.*?)\[\/NOANBIETER\]/is","",$template);
}
else
{
$template = preg_replace("/\[CONTINUEANBIETER\](.*?)\[\/CONTINUEANBIETER\]/is","",$template);
$template = preg_replace("/\[NOANBIETER\](.*?)\[\/NOANBIETER\]/is","\\1",$template);
}
echo $template;
?>
Aufbau der HTML-Template-Datei viewpage.html:
[CONTINUEANBIETER]
[CONTINUEANBIETERHEADER][ANBIETERNAME][/CONTINUEANBIETERHEADER]
[CONTINUEANBIETERINFOS][INFONAME][INFO][/CONTINUEANBIETERINFOS]
[/CONTINUEANBIETER]
Wahrscheinlich ist's wieder nur ne Kleinigkeit, aber als Newbie komm ich einfach nicht drauf.
Kommentar