Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit Menue-Erstellung aus DB [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Menue-Erstellung aus DB


 
Phil98
11-10-2003, 10:37 
 
Hallo,
ich habe, mal wieder, ein kleines/großes Problem. Ich möchte aus den inhalten meiner MySQL-Datenbank ein Menü erstellen. Nachfolgend erstmal die Struktur meiner DB-Tabellen:

category
+------------------------+-----------+---------+
| cat_id (auto_increment) | cat_name | cat_sort |
+------------------------+-----------+---------+

content
+----------------------------+-------------------+-------------+--------------+
| content_id (auto_increment) | content_kategorie | content_titel | content_sort |
+----------------------------+-------------------+-------------+--------------+

Das Menü soll sich nun folgendermaßen zusammensetzen:
Als Überschriften sollen dort der Inhalt von cat_name sortiert nach dem Feld cat_sort stehen. Unter jeder Überschrift sollen nun die Links (content_titel) folgen und zwar so, dass nur die Links die die gleiche Nummer im Feld content_kategorie wie im Feld cat_id haben unter der zugehörigen Überschriften auftauchen. Ebenso wie die Kategorie-Überschriften sollen auch die einzelnen Links nach content_sort sortiert werden...

Ich hoffe ich konnte mich einigermaßen deutlich ausdrücken (wenn nicht fragt bitte nach!). Ich habe das ganze auch schon versucht umzusetzen, kam allerdings nicht wirklich weiter:

<?php
require("_config.inc.php");
require("_functions.php");

$menu='';

$result = mysql_query("SELECT category.*, content.*
FROM category
LEFT JOIN content ON (content.content_kategorie=category.cat_id)
WHERE cat_id = '1' AND content_kategorie = '1'
ORDER BY cat_sort ASC");

while ($row = mysql_fetch_array($result)) {
$menu_headline.=$row['cat_name'];
$menu_links.="<a href=\"index.php?site=".$row['content_id']."\">".$row['content_titel']."</a><br>";
eval ("\$menu = \"".gettemplate("menu")."\";");
}

eval("dooutput(\"".gettemplate("index")."\");");
?>
Mit diesem Code, konnte ich lediglich alle Inhalte in die Variiablen speichern und dann untereinander ausgeben lassen. Bsp: cat1 cat2 cat3 cat4 content1 content2 content3 content4 usw.
Es sollte allerdings in etwa so aussehen: Bsp: cat1 content1 content2 content3 cat2 content4 content5 usw.

Naja, ich hoffe ihr könnt mir helfen :)

Vielen Dank im voraus.
phil.

 
Phil98
11-10-2003, 23:08 
 
Thema hat sich erledigt. Hab die Lösung gefunden:
<?php
require("_config.inc.php");

$result = mysql_query("SELECT *
FROM category
GROUP BY cat_id
ORDER BY cat_sort ASC");

while ($row = mysql_fetch_array($result)) {
echo "".$row['cat_name']."<br>";

$result1 = mysql_query("SELECT *
FROM content
WHERE content_kategorie='$row[cat_id]'
ORDER BY content_sort ASC");
while ($row1 = mysql_fetch_array($result1)) {
echo "<a href=\"$PHP_SELF?site=".$row1['content_id']."\">".$row1['content_titel']."</a><br>";
}

}
?>

Allerdings habe ich niche eine Frage: WIE SPEICHER ICH DAS GANZE JETZT IN DIE VARIABLEN??
cu phil.

 
TobiaZ
12-10-2003, 11:27 
 
WIE SPEICHER ICH DAS GANZE JETZT IN DIE VARIABLEN?? wie meinst du das`?

 
Phil98
12-10-2003, 11:37 
 
Original geschrieben von TobiaZ
wie meinst du das`?
Sorry, habe mich evtl. etwas undeutlich ausgedrückt...
Ich wollte das ganze ursprünglich, da auf templates basierend, in die Variablen $menu_headline und $menu_links speichern -> s.o.
Wenn ich das aber so mache, dann werden die Überschriften und die dazugehörigen Links wieder untereinander (cat1 cat2 cat3 content1 content2 content3 etc.) ausgegeben. Warscheinlich muss ich dann alles in eine Variable packen, damit es richtig ausgegeben wird... Kann das sein?
Ich hoffe, ich konnte mich etwas deutlicher ausdrücken (auch wenn ich nicht den Eindrck habe :rolleyes: ).
Naja, wenn es nicht geht, mach ich es halt so, wie oben geposted :)
cu phil.

 
TobiaZ
12-10-2003, 11:46 
 
echo "<a href=\"$PHP_SELF?site=".$row1['content_id']."\">".$row1['content_titel']."</a><br>";

das willst du in die Variable packen?

$var = "<a href=\"$PHP_SELF?site=".$row1['content_id']."\">".$row1['content_titel']."</a>"; // ohne umbruch

oder mit den meisten TemplateEngines:

$TPL->Assign('navi', "<a href=\"$PHP_SELF?site=".$row1['content_id']."\">".$row1['content_titel']."</a>");


meinst du das?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:54 Uhr.