Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem i insert
Forum PHP.pl > Forum > PHP
spit
Czesc
Probuje zrobic na stronie system komentarzy, mam taki kod dodawania:
  1. <form method="post">
  2. <input name="nick" type="text" value="nick" />
  3. <input name="mail" type="text" value="mail" /><br />
  4. <textarea name="tresc" cols="50" rows="5"></textarea>
  5. <input type="submit" name="submit" value="Dodaj" />
  6. </form>
  7. <?php
  8. $nick = $_POST['nick']; 
  9. $mail = $_POST['mail'];
  10. $tresc = $_POST['tresc'];
  11. $tresc=nl2br(wordwrap(str_replace("<", "&lt;", $tresc), 50, " ", 1));
  12.  
  13. $polaczenie = mysql_connect('localhost','user','pass') or die('Polaczenie nieudane'); 
  14. mysql_select_db('baza') or die('Wybranie bazy nieudane'); 
  15. $zapytanie = "INSERT INTO 'komentarze' VALUES ('$zespol','$nick','$mail','$tresc',now())";
  16. $wynik = mysql_query($zapytanie) or die('blad'); 
  17. mysql_close($polaczenie);
  18. ?>

i niestety gdy wchodze na strone z tym wlasnie kodem, dostanie blad [or die('blad'); ]. Co jest zle?
GrayHat
przed VALUES musisz okreslic pola do ktorych wpisujesz dane ze zmiennych po VALUES smile.gif

  1. INSERT
  2. INTO komentarze
  3. (pole1,pole2,pole3) VALUES ('wartosc1','wartosc2','wartosc3')


pozdrawiam
siemakuba
Cytat
przed VALUES musisz okreslic pola do ktorych wpisujesz dane ze zmiennych po VALUES


to niekoniecznie. Jezeli robisz INSERT dla wszystkich pól, nie musisz ich wymieniać.

Myśle że tu problem leży w cudzysłowiach wokół nazwy tabeli. Wyglądają na zwykły pojedyńczy cudzysłów, a mogłoby ich nie być wcale. Jeżeli już mają koniecznie być to muszą to być "back-tick" (nie wiem jak to sie zwie po polsku) --> ` - na klawiaturze (u mnie) na tym samym klawiszu co tylda (~).

pozdr.
MrMag
nie trzeba.

zrob sobie mysql_error() i zobacz co jest nie tak. moze jakis problem z tabelami bazy.

tak na oko to brak zmiennej $zespol przed query
GrayHat
potrzeba bo gosc nie wymienil ID... czyli nie leci wszystkich pol... cudzyslow z nazwy tabeli tez powinien zniknac...
spit
Dobra, zrobiłem w bazie od nowa tabele, i niby dodaje, ale raz, ze dodaje rekordy dwukrotnie, a dwa, ze pola sa puste. Wypelnione jest tylo to pole, ktoro pobierane jest z url i data (funkcja now()).
GrayHat
ok to zrob to tak jak powinno to wygladac...
  1. <?php
  2.  
  3. $zapytanie = "INSERT INTO komentarze (pole,pole,pole,pole,pole) VALUES ('".$zespol."','".$nick."','".$mail."','".$tresc."',now())";
  4.  
  5. ?>


tak wogole to gdzie deklarujesz zmienna $zespol??
spit
Zrobilem tak - nie pomoglo.
$zespoly deklaruje jeszcze na poczatku
  1. <?php
  2. $zespol=$_GET['zespol'];
  3. ?>
, i potem uzywam w polaczeniach mysql, by nie grzebac w includach wielu plikow.
GrayHat
a daj
  1. <?php
  2. echo $zapytanie;
  3. ?>

dobrze wydrukowalo zapytanie? tzn ze wszystkimi opcjami?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.