Neuigkeiten:

still alive...

Hauptmenü

Kategorien programmieren

Begonnen von timi11, 22. April 2008, 09:42:02

Vorheriges Thema - Nächstes Thema

timi11

Hallo Friends, leider habe ich bei der Suche nichts eindeutiges gefunden aber unter Umständen hat jemand ja eine Idee.
Ich bin dem PHP noch nicht so mächtig mach aber Fortschritte.
Nun mein Anliegen:
Ich würde gern erklährt oder gezeigt bekommen wie man in PHP Kategorien programmiert?
Es geht mir eigentlich nur darum zu verstehen wie man Kategorien programmiert. Soll heißen:
Der Aufbau mit z.B. cat_id u.s.w. in eine DB einfügen und wieder abrufen und mit dem einfügen von z.B. Text in eine Kategorie.
Um das zu verdeutlichen, ich habe mal ein ganz einfaches Script bekommen wo Switch erklährt wurde, dadurch habe ich das erst verstanden.
Beispiel:
-----------------------------------------------------
switch ($m)
{
case \'first\':
echo \"Text zu first\";
break;
case \'second\':
echo \"Text zu second\";
break;
// here comes the default switch
default:
echo \"default Text\";
}
Aufrufen mit script.php?m=first
-----------------------------------------------------
So in der Art, halt für Leihen.
Ich bedanke mich schon mal im vorraus bei allen die Hilfe anbieten können.
Danke, timi11

So in der Art, halt für Leihen.[/quote]
?

timi11

Ich meinte so einfach wie möglich gestalten.
So in der Art wie hier:
 

 0)
   {
       // Einträge vorhanden
       while($row = mysql_fetch_array($result))
       {
           // Ausgabe
           echo \"\".$row[1].\"
\";
       }
   }
   else
   {
       // Keine EInträge in cats
       echo \"Keine Kategorien!\";
   }
}
else
{
   // Inhalt der Ka.
   $result = mysql_query(\"SELECT * FROM wasauchimmer WHERE cat_id=\'\".$id.\"\'\") ;
   $count  = mysql_num_fields($result);
   if($count > 0)
   {
       // Einträge vorhanden
       while($row = mysql_fetch_array($result))
       {
           // wie sollte die Ausgabe aussehen, so nur die ID des Eintrags
           echo $row[0].\"
\";
       }
   }
   else
   {
       // Keine EInträge in wasauchimmer
       echo \"Keine Einträge in der Kategorie!\";
   }
}
?>

 
 
Wie könnte hier die Ausgabe aussehen?
Danke timi11

lit-web

Hallo!
Wie willst du es denn genau haben? Du kannst Kategorien beschränkt anlegen oder aber alles in einer Tabelle mit der id den namen und einer parent id. Zusätzlich kannst noch den Pfad mit speichern.
Das ganze dann rekursiv auslesen,da gibt es auch verschiedene Art und Weisen. Ich bin selber auch grad dabei und tue mich mit dem rekursiven auslesen schwer.
Hier mal mein Code wo ich hänge und einfach nicht weiter komme mir eben der Ansatz fehlt. Vieleicht kann mir da auch jemand helfen?
Dort wo die while Schleife beginnt habe ich das Denkproblem!
mfg der Litter
 


Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


lit-web

Ich habe es weiter probiert und scheiter immer noch ich bekomme von Beginn an diese Fehlermeldung hier!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'where parent_id=\'0\'\' at line 1
 



 
 
Vieleicht kann mir da einer weiter helfen. Vielen Dank

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


mahe

Naja ... aus welcher Tabelle list du aus?

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


lit-web

Ich Hirnie.
Gut habe das geändert ind der Zeile steht jetzt zusätzlich From $tab_baum aber leider immer noch kein verändertes Ergebnis!

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


mahe

$tab_baum gibt es in der Funktion nicht ...
 
Des weitern:
$num = mysql_num_rows(.... löschen, ist überflüssig.
Die if() kannst du löschen, die while() reicht.
Abgesehn davon gibt es $row nicht wenn in der Bedingung true rauskommrt.
$tmp wird bei jedem Durchgang der Schleife überschrieben.
Wozu lässt du dir x-mal das Query in der Schleife ausgeben?
Eine Funktion sollte immer was zurückgegeben, auch wenn es nur true oder false ist!

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


lit-web

Mittlerweile so geändert,aber nun bekomme ich gar nichts mehr ausgegeben sondern sehe nur eine Weise Seite. Keine Fehlermeldung nichts!
 


\";
            navimenu($cat.$row[\'id\']);
//echo $sqlbefehl;
        }
}
?>

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


mahe

Weil es wie bereits erwähnt $tab_baum nicht gibt /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


lit-web

Häh wieso gibt es $tab_baum nicht?
Die Tabelle ist in einer anderen datei die mit require eingebunden wurde!
Oder ich verstehe grad nicht in wie fern du das meinst!

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


mahe

entweder du haust am Anfang ein global $tab_baum; rein oder du schreibst $GLOBALS[\'tab_baum\'] anstatt $tab_baum /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
Du hast da eine Funktion, in der sind nicht automatische alle Variablen verfügbar ...
www.php.net/global

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


Dazu sei anzumerken, dass das Verwässern der Namensräume mit global nicht empfehlenswert ist.
Der von litter oben gepostete Code ist anfällig für SQL-Injections, wenn $cat nicht vorher geprüft wird und anfällig für XSS, wenn die Einträge in der Datenbank nicht gesäubert wurden. Außerdem kann es vorkommen, dass zu 0 gecastet wird.

all your base are belong to us