![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 21.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki mały problem...
mam funkcje rekurencyjna realizujaca forum...jednak ze nie dziala do konca tak jak bym chcial...poniewaz gdy usowam jakis post z bazy to wtedy robia sie taki przecinki zamiast postu.. MOze ktos ma pomysl jak zamienic ja na iteracyjna?albo cos innego? a Oto kod: Funkcja pokazujaca forum Kod <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Forum dyskusyjne</TITLE> </HEAD> <BODY> <H2>Forum dyskusyjne</H2> <A HREF="6-18.php">Wszystkie posty</A>, <A HREF="6-18-add.php">Wyślij nowy post</A><HR> <? // Wyświetlanie forum dyskusyjnego. Jeżeli jest podany numer postu, // wyświetla się on i jego odpowiedzi. Jeżeli nie - całe forum. function wypiszforum ($nr) { // Funkcja rekurencyjnie wyświetla wszystkie rekordy, będące poniżej // w hierarchii postów (czyli odpowiedzi, odpowiedzi na odfpowiedzi, // itd... global $fref; global $fdata; global $fosoba; global $ftytul; print "<UL>"; for ($i=count($fref); $i>=1; $i--) { if ($fref[$i] == $nr) { print "<LI><A HREF=\"6-18.php?nr=$i\">$ftytul[$i]</A>, ". "<I>$fosoba[$i], $fdata[$i]</I>"; wypiszforum ($i); } } print "</UL>"; } mysql_connect ("xxxl", "xxx", "xxx") or die ("Nie można połączyć się z MySQL"); mysql_select_db ("xxxx") or die ("Nie można połączyć się z bazą cwphp"); $nr = $_GET['nr']; if ($nr>0) { // chcemy wyświetlić post $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM forumdyskusyjne WHERE nr=$nr"); if ($wynik && $rekord = mysql_fetch_array ($wynik)) { // i ten post jest $tresc = $rekord[2]; $tytul = $rekord[1]; print "<H3>$rekord[1]</H3>"; print "<P>wysłany przez <B>$rekord[0]</B>, <B>$rekord[3]</B>:"; print "</P><P>$rekord[2]</P><HR>"; print "<A HREF=\"6-18-add.php?ref=$nr\">Wylij odpowiedĽ</A><HR>"; } else { $nr = 0; } } else { $nr = 0; } // odczyt danych, które będą wykorzystane w funkcji rekurencyjnej $wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ". "FROM forumdyskusyjne"); while ($wynik && $rekord = mysql_fetch_assoc ($wynik)) { $fref[$rekord['nr']] = $rekord['ref']; $fdata[$rekord['nr']] = $rekord['data']; $ftytul[$rekord['nr']] = $rekord['tytul']; $fosoba[$rekord['nr']] = $rekord['osoba']; } // wypisanie postów potomnych - rekurencja wypiszforum ($nr); ?> </BODY> </HTML> i dodaj: Kod <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <TITLE>Forum dyskusyjne -- dopisanie postu</TITLE> </HEAD> <BODY> <H2>Forum dyskusyjna</H2> <A HREF="6-18.php">Wszystkie posty</A>, <A HREF="6-18-add.php">Wyślij nowy post</A><HR> <? // Skrypt wyświetla formularz i przyjmuje dane, wpisując nowy post do // bazy. mysql_connect ("xxxl", "xxx", "xxx") or die ("Nie można połączyć się z MySQL"); mysql_select_db ("xxx") or die ("Nie można połączyć się z bazą hh"); if ($_POST['co'] == 'wyslij') { // żądanie dopisania $ty = addslashes(htmlentities ($_POST['tytul'])); $os = addslashes(htmlentities ($_POST['osoba'])); $tr = addslashes(nl2br(htmlentities ($_POST['tresc']))); if ($ty && $os && $tr) { // dopisujemy! $query = ("INSERT INTO forumdyskusyjne (osoba, tytul, tresc, ". "data, ref) VALUES ('$os', '$ty', '$tr', now(), '".$_GET['ref']."')"); mysql_query ($query); print 'Wpis został dokonany. <A HREF="6-18.php">Forum dyskusyjne</A>'; exit; } else { $tresc = $_POST['tresc']; $tytul = $_POST['tytul']; $osoba = $_POST['osoba']; } } elseif ($_GET['ref']>0) { // próba odpowiedzi na inny post $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ". "FROM forumdyskusyjne WHERE nr=".$_GET['ref']); if ($wynik && $rekord = mysql_fetch_assoc ($wynik)) { // i ten post jest $tresc = $rekord['tresc']; $tytul = $rekord['tytul']; $tresc = str_replace ("<br />", "", $tresc); $tresc = str_replace ("\n", "\n: ", $tresc); $tresc = ": ".$tresc; if (!(ereg ("^Re: ", $tytul))) { // dopisujemy RE, o ile nie ma $tytul = "Re: ".$tytul; } print "<H3>Odpowiedz na post: ".$rekord['tytul']."</H3><P>Wysłany przez "; print "<B>".$rekord['osoba']."</B>, <B>".$rekord['data']."</B></P>".$rekord['tresc']."<BR><HR>"; } } // Wyświetlenie formularza print "<H3>Poślij post:</H3>"; print "<FORM METHOD=POST><INPUT TYPE=\"hidden\" NAME=\"co\" VALUE=\""; print "wyslij\"><INPUT TYPE=\"hidden\" NAME=\"ref\" VALUE=\"".$_GET['ref']."\">"; print "<B>Osoba:</B><BR><INPUT TYPE=\"text\" NAME=\"osoba\" "; print "VALUE=\"$osoba\" SIZE=60><BR>\n<B>Tytuł postu:</B><BR>"; print "<INPUT TYPE=\"text\" NAME=\"tytul\" VALUE=\"$tytul\" "; print "SIZE=60><BR><B>treść:</B><BR><TEXTAREA NAME=\"tresc\" "; print "ROWS=10 COLS=60>$tresc</TEXTAREA><BR>\n"; print "<INPUT TYPE=\"submit\" VALUE=\"Wyślij\">"; print "</FORM>"; ?> </BODY> </HTML> ------------------------- popraw BBCode bo znowu wątek zostanie zamknięty ~Cienki1980 pomoze ktos?? albo powie co nalezy zmienic? mógłby ktospomoc Ten post edytował Cienki1980 20.04.2007, 21:05:39 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:53 |