Zakol Opublikowano 10 Września 2005 Udostępnij Opublikowano 10 Września 2005 Robię swoją stronkę, i stanąłem na komentarzach. Robie je w php (sql) i to pierwszy raz więc nie za bardzo wiem co i jak xD Mam już baze, tabele i pola; zrobiłem żeby komenty wyświetlały się na stronie (Tymon mi pomagał =X), ale za Chiny nie mogę zrobić, żeby można było robić nowe wpisy :angry: Aktualnie mam coś takiego: [index.php] <?php $sql = mysql_connect('localhost', 'login', 'haslo'); mysql_select_db('database'); $wykonaj = mysql_query("SELECT * FROM exams_comments WHERE piece_id='111111'"); while ($pole = mysql_fetch_array($wykonaj, MYSQL_BOTH)) { echo '<b>'.$pole["author_id"].'</b>'.'<BR>'; echo $pole["content"].'<BR>'.'<BR>'; } echo '<BR>'.'<BR>'; ?> <FORM name="forma" action="addcom.php" method="POST"> Nazwa :<br><INPUT TYPE="TEXT" NAME="autor"><br><br> Tresc :<br><textarea rows=6 cols=40 NAME="tekst"></textarea><br><br> <INPUT TYPE="hidden" NAME="process_id" value="111111"> <INPUT TYPE="SUBMIT" value="Dodaj"><br> </FORM> [addcom.php] <?php @mysql_query("INSERT INTO `exams_comments` (`piece`, `author`, `content`) VALUES ( $_POST["tekst"], $_POST["autor"], $_POST["process_id"])" ); ?> Co tutaj jest źle? Jak próbuje dodać komenta to wyskakuje error: Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in source/addcom.php on line 4 Proszę o pomoc i z góry dzięki. B) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 10 Września 2005 Udostępnij Opublikowano 10 Września 2005 Proste to bardzo :] Pomyśl jak możesz wysłać jakieś dane. Z formularza :D Choćby takiego : <form action="dodaj_koma.php" METHOD="POST"> <input TYPE="text" NAME="nick"> <textarea cols="40" rows="9" name="text"></textarea> <input TYPE="SUBMIT" value="Dodaj komentarz"> </form> Teraz patrz. <form action="dodaj_koma.php" method="post"> Wysyła te dane do pliku dodaj_koma.php metodą post. Czyli musisz mieć plik który odbierze te dane, a w tym pliku skrypt odczytujący i dodający do tabeli nowy wpis. Wygląda to mniej więcej tak : $nick=$_POST['nick']; // Odbiera dane z pola formularza "nick" i zapisuje do zmiennej. $text=$_POST['text']; // Odbiera dane z pola formularza "text" i zapisuje do zmiennej. $zapytanie="INSERT INTO nazwa_tabeli VALUES ('$nick','$text')"; $wykonaj=mysql_query ($zapytanie); header("Location: index.php"); // Przekierowanie na stronę główną I tu uwaga! Użyłem polecenia header czyli albo jo skasujesz albo będziesz musiał wstawić ten skrypt przed tagiem <html> ;) No i to chyba tyle. Do tego możesz jeszcze dodać jakieś zabezpieczenia itd. Jeśli gdzieś błąd popełniłem to poprawcie mnie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 10 Września 2005 Administratorzy Udostępnij Opublikowano 10 Września 2005 @mysql_query("INSERT INTO `exams_comments` (`piece`, `author`, `content`) VALUES ( '".$_POST['tekst']."', '".$_POST['autor']."', '".$_POST['process_id']."')" ); był to podstawowy błąd - znak " otwierał i zamykał w tym przypadku zmienną. Pozatym zmienna dodawana do bazy musi znaleźć się pomiędzy ' i '. Proponuję też drugie wyjście $autor=$_POST['autor']; $tekst=$_POST['tekst']; $pid=$_['process_id']; @mysql_query("INSERT INTO exams_comments (piece, author, content) VALUES ('$text','$autor','$pid'); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 10 Września 2005 Autor Udostępnij Opublikowano 10 Września 2005 Tymon powtórzył to co napisałem wcześniej i tylko dodał header("Location: index.php"); Po obu przykładach (Tymona i Gnyska) wyskakuje error: Parse error: parse error, unexpected T_STRING in source/addcom.php on line 6 :angry: Nie wiem, może coś jest nie tak w index.php ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 10 Września 2005 Udostępnij Opublikowano 10 Września 2005 Może jakiś przypadkowy znak postawiłeś? A jakie typy pól w tabeli dałeś ? :] EDIT A mnie ludzie się zawsze słuchają? :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 10 Września 2005 Autor Udostępnij Opublikowano 10 Września 2005 Coś ruszyło jak dałem to co gnysek na początku napisał: @mysql_query("INSERT INTO `exams_comments` (`piece`, `author`, `content`) VALUES ( '".$_POST['tekst']."', '".$_POST['autor']."', '".$_POST['process_id']."')" ); header("Location: http://www.darmoland.pl//index.php"); Ale teraz nie ma errora tylko cofa mnie do strony głównej bez dodania komenta. EDIT: Tymon, przecież sam kazałeś zrobić typy "text" :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Września 2005 Filar Społeczności Udostępnij Opublikowano 10 Września 2005 Zmienne tekstowe powinne być w cudzysłowiu. Wpisz echo mysql_error(); ps. Nie SQL tylko MySQL. SQL to standard zapisu zapytań, a MySQL to jedna z baz danych opierających się na tym standardzie. Wiem, czepiam się. :D Edit by BWO: A czy on napisał że oparty na bazie SQL? Nie, tylko że wykoszystuje SQL - wiem czepiam sie :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 10 Września 2005 Autor Udostępnij Opublikowano 10 Września 2005 Znowu mam problem - niby już można dodawać komentarze ale narazie "na sucho" (dodaje to mu kazałem, nie czyta z wpisanych danych). I właśnie nie jestem pewien jak powinna wyglądać składnia: $zmienna="$_POST('autor')"; Jeżeli zrobie to co podałem wyżej, to zamiast $zmienna zwraca puste pole <_< A powinno przecież to co wpisałem w polu tekstowym 'autor' na poprzedniej stronie. Niech mnie ktoś poprawi :lol2: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się