| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Wieviel Datensätze stehen denn in der Datenbank? Wenns es eine überschaubare Zahl ist hol dir auf einmal alle raus und übernimm die tatsächliche Auswahl mit PHP. So hast du pro Rekursionsaufruf eine Datenbankabfrage. Das ist sehr unschön. |
| |
| | |
| Neuer Benutzer | @xabbuh $a_b ist die verbindung zur datenbank dein einwurf bezüglich $PHP_SELF ist korrekt. ich habe das korrigiert. auch den aufruf der funktion habe ich korrigiert. das alles kommt durch das ewige rumprobieren und ire´gendwie komme ich keinen schritt weiter @zergling die funktion benögiutge ich für ein projekt in dem man selbst die rubriken festelgen und ineinader verschachteln kann. maximal denke ich wird man vieleicht auf 50 rubriken kommen. mehr habe ich bisher noch nirgendwo entdecken können. ich habe jetzt alles nochmal überarbeitet. das war ein vorschlag aus einem anderen forum. herausgekommen ist eine endlosschleife. weiß echt nicht was ich falsch mache. ich will doch nur eine baumstruktur in der sich die unterpunkte per klick öffnen. was ist falsch? Code: function show_navi($parent, $open)
{
global $a_db, $_SERVER["PHP_SELF"];
$sql = "
SELECT
*
FROM
1_rubrik ru,
WHERE
ru.parent = '".$parent."'";
$query = mysql_query($sql,$a_db);
if( mysql_num_rows($query) )
{
echo '<ul>';
while($row = mysql_fetch_assoc($query))
{
echo '[*]<a href="'.$_SERVER["PHP_SELF"].'?open='.$row["id"].'">'.$row["name"].'';
if( $open == 0 )show_navi(0, $open);
else show_navi($open, $row["parent"]);
}
echo '[/list]';
}
}
|
| |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hm das wären ja im Worst-Case 50 Datenbank Abfragen. Das ist zuviel. Das Problem könnte sein, dass du tatsächlich eine Endlosschleife hast (schon in der Datenbank). Aber ich sehe gerade warum du eine Endlosschleife hast. Du übergibst der Funktion ja immer wieder $parent = 0. Das kann ja nichts werden. Du musst ihr einen Wert aus $row zuordnen (da du beim SELECT * benutzt, weiß ich nicht welche Spalten es gibt http://www.php-faq.de/q/q-sql-select.html) Edit: Dein Skript ist Banane: Prototyp: show_navi($parent, $open) Aufruf: show_navi(0, $open), show_navi($open, $row["parent"]) Merkst du was? |
| |
| | |
| Neuer Benutzer | so ich habe mich nochmal rangesetzt und einen lösungsansatz entwickelt. hier kommt er: Code: error_reporting(E_ALL);
## die uid wird zu parent und bezeichnet immer das elternteil,
## wenn das nicht vorhanden ist wird parent zu 0
if ( !isset($_REQUEST["open"]) )
{
$open = 0;
}
else
{
$open = $_REQUEST["open"];
}
include_once("db.inc");
session_start();
#echo'<pre>';
#print_r($_SERVER);
function show_navi($parent, $open)
{
global $a_db, $PHP_SELF;
#echo $_SERVER["PHP_SELF"];
$sql = "
SELECT
*
FROM
1_rubrik ru, 1_assign ass
WHERE
ru.id = ass.strange_id AND
ass.parent = '".$parent."'";
#echo 'db: '.$a_db;
#echo '
query: '.$sql;
$query = mysql_query($sql,$a_db);
if( mysql_num_rows($query) )
{
echo '<ul>';
while($row = mysql_fetch_assoc($query))
{
echo '[*]
'.$row["name"].'
';
if($open != 0)
{
show_navi($row["id"], $row["id"]);
}
/*
if( $open == 0 )show_navi(0, $open);
else show_navi($open, $row["parent"]);
*/
}
echo '[/list]';
}
}
#show_navi(0, 0);
$navi = show_navi(0,$open);
http://www.hydrotip.de/admi_neu/struktur-sicher.php dabei gibt es jetzt nur ein problem. das skript öffnet alle unterpunkte wenn man auf einen pukt klickt. das will ich aber nicht. ich möchte das sich nur der punkt öffnet den man angeklickt hat. wie in einem navigationsbaum. wie mache ich das? |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Rekursion zur Ausgabe von Kategorien und Unterkategorien | goofreezer | PHP Tipps 2008 | 19 | 20.06.2008 10:43 |
| Nested Sets oder Rekursion? | litterauspirna | PHP Tipps 2008 | 8 | 06.06.2008 16:57 |
| rekursion ist nicht mein freund.... ;-) | Promaetheus | PHP Tipps 2008 | 6 | 11.10.2007 18:49 |
| Türme von Hanoi - Rekursion | Erecthoma2006 | PHP Tipps 2006 | 7 | 07.06.2006 18:54 |
| Rekursionsfehler? | HTML, Usability und Barrierefreiheit | 6 | 10.05.2006 21:02 | |
| Wie nennt man so etwas? Rekursion bei Klassen? | Andreas | PHP Tipps 2007 | 3 | 16.11.2005 12:50 |
| Rekursion als sql | DerDesian | Datenbanken | 1 | 20.04.2005 11:59 |
| Klassen Frage!!! | PHP-Fortgeschrittene | 20 | 04.03.2005 22:24 | |
| Rekursion | PHP Tipps 2004 | 2 | 15.06.2004 11:31 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| navigationsbaum, php_self navigation parent |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.