gehts irgendwie? probleme mit arrays
droom
- php
Ich habe folgendes Problem:
ich habe mehrere Kategorien, die so "link1|link2|", "link1|link2|link3|" in der DB als category gespeichert werden.
Nun mit meinem Skript, nachdem man die aus der DB geholt hat, wenn man auf link1 (erster Teil einer Kategorie) klickt, dann sieht der link in HTML so <a href="index.php?cat=link1|">. Das kriege ich mit folgendes Script für jeden Link:
$deep=substr_count($category,"|");
$category = substr($category, 0, -1);
$array_cat = array();
$array_cat = explode("|",$category);
for($i=0;$i<$deep;$i++){
echo '<a href="index.php?cat='.str_replace(' ', '%20',$array_cat[$i]).'|">'.$array_cat[$i].'</a>/';
}
Aber ich möchte, dass wenn man auf link2 klickt, dann sieht der Link in HTML-Code so aus: <a href="index.php?cat=link1|link2|"> und für link3: a href="index.php?cat=link1|link2|link3|">. Da hängen meine Kentnisse und ich weiss nicht wie ich es machen kann. Habe mit Funktionen probiert aber es hat nicht funktionniert.
Aber ich möchte, dass wenn man auf link2 klickt, dann sieht der Link in HTML-Code so aus: <a href="index.php?cat=link1|link2|"> und für link3: a href="index.php?cat=link1|link2|link3|">. Da hängen meine Kentnisse und ich weiss nicht wie ich es machen kann. Habe mit Funktionen probiert aber es hat nicht funktionniert.
Hä ? WAS möchtest Du ?
Willst Du
a), daß die Links nur EINE Kategorie enthalten also
für link3: a href="index.php?cat=link3|">
oder
b) daß, was Du oben beschrieben hast ? also
für link3: a href="index.php?cat=link1|link2|link3|
Hi!
Ich möchte gern die 2te Version also b). Die erste schafft schon mein Skript, was ich geschrieben habe.
Aber ich möchte, dass wenn man auf link2 klickt, dann sieht der Link in HTML-Code so aus: <a href="index.php?cat=link1|link2|"> und für link3: a href="index.php?cat=link1|link2|link3|">. Da hängen meine Kentnisse und ich weiss nicht wie ich es machen kann. Habe mit Funktionen probiert aber es hat nicht funktionniert.
Hä ? WAS möchtest Du ?
Willst Du
a), daß die Links nur EINE Kategorie enthalten also
für link3: a href="index.php?cat=link3|">oder
b) daß, was Du oben beschrieben hast ? also
für link3: a href="index.php?cat=link1|link2|link3|
Dann sollte Dir das hier weiterhelfen...
$link = "<a href="index.php?cat="; // den <a>-tag öffnen
$vis = ""; // das wird der "sichtbare" Teil, den der User sieht
for($i=0;$i<$deep;$i++){
$link .= str_replace(' ', '%20',$array_cat[$i]) . '|'; //jede Kategorie hinzufügen...
$vis .= $array_cat[$i]; //und auch den sichtbaren Teil erweitern...
}
$link .= ">" . $vis . "</a>"; // zusammensetzen
echo $link; // und ausgeben...
Evtl. sieht $vis nicht so aus, wie Du dir das vorstellst, aber das kriegst Du dann schon hin.
Trotzdem ist mir ehrlich gesagt nicht ganz klar, was Du damit eigentlich machst... :-)
Schönen Gruß,
Zweifeln
Hi!
ich habe noch ne for-schleife reingebaut und ein bisschen geändert und nun klappt es. Danke dir. ;-)
Dann sollte Dir das hier weiterhelfen...
$link = "<a href="index.php?cat="; // den <a>-tag öffnen
$vis = ""; // das wird der "sichtbare" Teil, den der User siehtfor($i=0;$i<$deep;$i++){
$link .= str_replace(' ', '%20',$array_cat[$i]) . '|'; //jede Kategorie hinzufügen...
$vis .= $array_cat[$i]; //und auch den sichtbaren Teil erweitern...
}$link .= ">" . $vis . "</a>"; // zusammensetzen
echo $link; // und ausgeben...
Hallo droom!
ich habe mehrere Kategorien, die so "link1|link2|", "link1|link2|link3|" in der DB als category gespeichert werden
Ist es sinnvoll, Daten in einer Datenbank so zu speichern?
Ich kenne Deine Anwendung nicht wirklich, aber evtl. solltest Du deine DB-Struktur überdenken ... (es kann aber auch sein, daß Deine Struktur in Ordnung ist, doch ohne bissel Wissen drumrum kann man wenig sagen ...)
[...] link2 klickt,[...] index.php?cat=link1|link2| [...] link3 [...] index.php?cat=link1|link2|link3| [...]
Aha. Gut, das habe ich verstanden.
Doch warum willst du, daß Deien Links mit | enden? Ich würde den immer noch wegmachen (dann sidn die Adressen wenigstens ein wenig "merkbarer").
Mein Problem ist:
Ich verstehe nicht genau, was Du willst.
Ist link2 ein "Unterlink" von link1? (also ist das quasi eine Baumstruktur?)
willst du den Klickpfad übergeben?
Oder was meinst Du?
Habe mit Funktionen probiert aber es hat nicht funktionniert.
Mit welchen Funktionen?
MfG
Götz
ja link2 ist unterlink von link1.
Das war nur sch*** mit Funktionen. Kann man das irgendwie anders lösen.
Es muss mit "|" enden, weil ich dann noch die session reinbaue.
Hallo droom!
ja link2 ist unterlink von link1.
Aha. Dann kommen wir der Sache schon näher.
Zum thema Baumstrukturen hab ich vor kurzem mal was gelesen ... ich suchs mal raus ... ja genau, habs gefunden.
Im deutschen PHP Magazin 4.2003 (http://www.phpmag.de) hab ich was über "Nested Sets" gelesen.
Blöd nur, daß ich nun die Links abtippen muß ...
* Das 'Nested Sets' Modell - Bäume mit SQL
http://www.develnet.org/36.html
* Trees in SQL - Some answers to some common questions about SQL trees and hierarchies.
http://www.intelligententerprise.com/001020/celko.shtml
* Bäume in SQL
http://123.koehntopp.de/kris/artikel/sql-self-references/
Das sind zwar alles eher grundsätzliche Sachen, aber ich denke, das mal durchlesen kann auch Dir nicht schaden ;)
Vielleicht helfen Dir die Artikel ja bei der Lösung deines Problems.
(Auch der Feature-Artikel im Selfraum von Henryk Plötz "Threadbasiertes Forum mit PHP und MySQL" [http://aktuell.de.selfhtml.org/artikel/phpasp/php-forum/index.htm] könnte Dir helfen.)
Ansonsten kannst Du ja auch noch ein wenig im archiv oder mit http://www.google.de suchen.
Es muss mit "|" enden, weil ich dann noch die session reinbaue.
Ähm?
<sinn />?
Du weißt aber, daß man Variablen, die per GET übergeben werden nicht mit | sondern mit & voneinander abtrennt?
MfG
Götz