We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource


stefek99_
23-06-2007, 15:06
Wiem ze temat pojawial sie juz pare razy, no ale...

Jestem laikiem, skorzystalem z gotowego szablonu i troche sie zdziwilem kiedy komunikat jak wyzej.

http://www.compzone.org/art-System+k...+w+php-33.html

Kod:

 
 
 System komentarzy oparty na bazie MySQL
 
 
 

Komentarze

Dodaj nowy komentarz
"; //jeżeli zmienna id nie ma przypisanej wartości $wynik = mysql_query ("SELECT * FROM komentarze WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone komentarze i segregujemy według pola nr od wartości największej do najmniejszej print"
    "; while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM) print "
  • ".$rekord[2] = stripslashes($rekord[2]).", ".$rekord[1] = stripslashes($rekord[1]).", ".$rekord[3]."
  • "; //w pętli while wyświetlamy po kolei wszytskie komentarze w kolejności treść, pseudonim (nick), data } print"
"; }else if ($id=='nowy') { //jeżeli zmienna id zawiera wyraz nowy print "
"; //wyświetlamy formularz do wpisania komentarza print "

Nowy komentarz:

"; print "
"; print "Pseudonim:

n "; print "Treść:

n"; print ""; print "
"; print "Powrót"; }else if ($id=='dodaj') { // jeżeli zmienna id zawiera wartość dodaj //dodajemy komentarz do bazy $tresc = addslashes(nl2br(htmlentities ($tresc))); \ponieważ nie można ufać danym wprowadzanym przez użytkowników funkcją addslashes dodajemy ukośniki () w miejscach gdzie napotkanym na apostrof (‘), usuwamy je potem funkcją stripslahes przy wypisywaniu komentarzy, dodatkowo funkcja nl2br zamienia znaki końca linii na tag br $nick = addslashes(htmlentities ($nick)); if ($tresc && $nick) { //jeżeli pola treść i pseudonim są uzupełnione $zapytanie = "INSERT INTO komentarze (tresc, nick, "." data) VALUES ('$tresc', '$nick', "." now());"; $wynik = mysql_query ($zapytanie); //dodajemy wtedy dane do bazy wraz z aktualną datą i godziną – funkcja now() print "
"; print"

Twój komentarz został dodany do bazy. Ukaże się, gdy administrator go zatwierdzi


"; //jeżeli wszystko przebiegnie bez problemów wyświetlamy komunikat print"Powrót"; }else{ //jeżeli jednak nie wyświetlamy stosowną informację print "
"; print"

Pola pseudonim i treść muszą być wypełnione ! Kliknij wstecz w swojej przeglądarce i popraw te dane !

"; } }else { //jeżeli zmienna id zawiera inną wartość niż dodaj lub nowy wyświetlamy wszystkie zatwierdzone komentarze print"Dodaj nowy komentarz
"; $wynik = mysql_query ("SELECT * FROM komentarze WHERE zatwierdz=1 order by nr desc;"); //wybieramy zatwierdzone komentarze i segregujemy według pola nr od wartości największej do najmniejszej print"
    "; while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM)) { //mysql_fetch_array() zwraca nam tablicę indeksowaną numerycznie, gdzie indeks zaczyna się od 0 (MYSQL_NUM) print "
  • ".$rekord[2] = stripslashes($rekord[2]).", ".$rekord[1] = stripslashes($rekord[1]).", ".$rekord[3]."
  • "; //za pomocą pętli while wyświetlamy wszystkie rekordy, które zostały zatwierdzone (wartość pola zatwierdz wynosi 1) } print"
"; } ?>
PS. To jest kod przeklejony z tej strony. W swoim oczywiscie wpisalem odpowiednie hasla i bazy (laczy sie, a przynajmniej tak sie mnie wydaje).

Gugle powiedziały zeby dac @ przed nazwa funkcji. Wtedy warning znika, ale textfield sie nie pojawia. Ja nie mam pojecia co dalej. Licze na wasza pomoc.

Pozdrawiam
Stefan