Hi Leute!
Ich versuche gerade mir ein kleines Archiv zu erstellen,
dieses braucht eben natürlich Kategorien und sogar Unterkategorien!
Soweit so gut, nur ich will eben auch, dass ich unbegrenzt Unterkategorien machen kann.
So nun das Problem:
Eine ewig Schleife! Warum is mir klar... da ich die Funktion in die selbige Funktion eingesetzt habe.
Aber wenn die IF-Abfrage in der Funktion ungültig wird, müsste doch diese Schleife unterbrochen werden, und ein Ende finden.... ???
Hab alles versucht im PHP-Code zu erklären... dürfte evtl verständlich sein
Falls nicht fragt mich! Danke im Voraus!
Mfg me =)
Hier der code (hoffe ihr könnt was damit anfangen )
PHP
<?php
# Zur DB connecten
# include "db_connect.php"
/// DB - Install ////////////////////////////
//////////// Kategorien /////////////////////
$table = 'Kategorien';
$sql = "CREATE TABLE IF NOT EXISTS `". $table ."`
(
`ID` INT AUTO_INCREMENT PRIMARY KEY,
`Name` TEXT,
`Parent` INT
); ";
mysql_query($sql) OR die(mysql_error());
/////////////////////////////////////////////
/////////////////////////////////////////////
?>
<h1>Archiv</h1>
<table width="100%" border="0" cellspacing="5" cellpadding="0">
<?php
/// Funktion erstellen um herauszufinden, ob es noch Unterkategorien gibt,
/// falls ja hinschreiben, dann checken ob es in diesen Unterkategorien
/// nochmal Unter-unter-Kategorien gibt,
/// falls ja.......... usw....
/// falls nein (irgendwann sollte es keine Unterkategorien geben außer DB is unendlich)
/// schließen sich die Schleifen und fertig.
function check_and_post()
{
$parent = ${"row".$i}['ID'];
$i++;
${"sql".$i} = "SELECT * FROM Kategorien
WHERE Parent = '". $parent ."'
ORDER BY ID ASC";
${"result".$i} = mysql_query(${"sql".$i}) OR die(mysql_error());
${"row".$i} = mysql_fetch_assoc(${"result".$i});
if( ${"row".$i} !== false )
{
?>
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
do {
?>
<tr>
<td width="15" align="right">
-
</td>
<td align="left">
<?php echo ${"row".$i}['Name']; ?>
</td>
</tr>
<?php
check_and_post();
?>
<?php
} while(${"row".$i} = mysql_fetch_assoc(${"result".$i}));
?>
</table>
</td>
</tr>
<?php
}
$i = $i - 1;
}
/// Start ////
$i = 0;
${"sql".$i} = "SELECT
ID,
Name,
Parent
FROM
Kategorien
WHERE Parent = 'false'
ORDER BY
ID ASC";
${"result".$i} = mysql_query(${"sql".$i}) OR die(mysql_error());
${"row".$i} = mysql_fetch_assoc(${"result".$i});
do {
?>
<tr>
<td width="100%" align="left">
<?php echo ${"row".$i}['Name']; ?>
</td>
</tr>
<?php
check_and_post();
?>
<?php
}
while(${"row".$i} = mysql_fetch_assoc(${"result".$i}));
?>
</table>
Alles anzeigen