Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd w pliku wtf?
Forum PHP.pl > Forum > Przedszkole
muk4
Oto mój skrypt:

  1. <?
  2. include 'config.php';
  3. echo" Aby dodać rekord wypeij formularz!";
  4.  
  5. if($_POST['wyslij']{
  6.  
  7. $query = "INSERT INTO records (kill, dead, exp, kasa, godz_start, min_start, godz_kon, min_kon) VALUES ($_POST['kill'], $_POST['dead'], $_POST['exp'], $_POST['kasa'], $_POST['godz_start'], $_POST['min_start'], $_POST['godz_kon'], $_POST['min_kon'])";
  8.  
  9. $wykonaj = mysql_query($query);
  10.  
  11. } else {
  12.  
  13. echo"Wypełnij formularz:";
  14. <form action="dodaj.php" method="post">
  15. <table><tr><td>
  16. Zabojstwa: <INPUT NAME="kill" TYPE="text" SIZE=10><BR />
  17. Zginiecia: <INPUT NAME="dead" TYPE="text" SIZE=10><BR />
  18. Doswiadczenie: <INPUT NAME="exp" TYPE="text" SIZE=10><BR />
  19. Dinary: <INPUT NAME="kasa" TYPE="text" SIZE=10><BR />
  20. Godzina startu: <INPUT NAME="godz_start" TYPE="text" SIZE=10> :
  21.  <INPUT NAME="min_start" TYPE="text" SIZE=10><BR />
  22. Godzina konca: <INPUT NAME="godz_kon" TYPE="text" SIZE=10> :
  23.  <INPUT NAME="min_kon" TYPE="text" SIZE=10><BR />
  24.  
  25. </td></tr>
  26. <tr><td align=center>
  27. <INPUT TYPE="submit" name="wyslij" value="Wyslij">
  28. </td></tr></table>
  29. </FORM>";
  30.  
  31. }
  32. ?>


A oto błąd:

Kod
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\warrock\dodaj.php on line 7
Cienki1980
W 5tej linii brakuje Ci zamykającego nawiasu od if.

I nie wiem czy to przez forum ale wyświetlenie formularza też może być błędne .. polecałbym echo 'tutaj cala zawartosc formularza'; a nie tak jak jest teraz echo "cala zawartosc formularza";
muk4
Poprawiłem ten nawias i zmieniłem " na ' ale dalej to samo :<

Moim zdaniem to coś w zapytaniu jest nei tak ale nie wiem co.
loonger
zamien:
in_kon) VALUES ($_POST['kill'], $_POST['dead'], ...
na:
in_kon) VALUES (" . $_POST['kill'] . ", " . $_POST['dead'] . ", ...
i wszystkie te $_POST-y poowyrzucaj miedzy kropki poza "
Cienki1980
  1. <?php
  2. //zmien
  3. $query = "INSERT INTO records (kill, dead, exp, kasa, godz_start, min_start, godz_kon, min_kon) 
  4. VALUES ($_POST['kill'], $_POST['dead'], $_POST['exp'], $_POST['kasa'], $_POST['godz_start'],
  5.  $_POST['min_start'], $_POST['godz_kon'], $_POST['min_kon'])";
  6. //na
  7. $query = "INSERT INTO records (kill, dead, exp, kasa, godz_start, min_start, godz_kon, min_kon) 
  8. VALUES ('".$_POST['kill']."', '".$_POST['dead']."', '".$_POST['exp']."', '".$_POST['kasa']."',
  9.  '".$_POST['godz_start']."', '".$_POST['min_start']."', '".$_POST['godz_kon']."', '".$_POST['min_kon']."')";
  10. ?>


Wszędzie używam składni '".$_POST['']."' a nie samego ".$_POST['']." bo nie wiem jakiego typu są dane wkładane do tej tabeli.

Sprawdź to czy będzie lepiej.
muk4
Zrobione jak pokazałeś
Teraz wyskakuje inny błąd związany ze składnią MYSQL :/

Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''kill', 'dead', 'exp', 'kasa', 'godz_start', 'min_start', 'godz_kon', 'min_kon')' at line 1
Cienki1980
Cytat(muk4 @ 30.07.2007, 16:56:35 ) *
Zrobione jak pokazałeś
Teraz wyskakuje inny błąd związany ze składnią MYSQL :/

Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''kill', 'dead', 'exp', 'kasa', 'godz_start', 'min_start', 'godz_kon', 'min_kon')' at line 1


Pokaż jak poprawiłeś bo coś tam chyba namieszałeś.
muk4
  1. <?php
  2. include 'config.php';
  3.  
  4.  
  5. if($_POST['wyslij']){
  6.  
  7. $query = "INSERT INTO records (kill, dead, exp, kasa, godz_start, min_start, godz_kon, min_kon) VALUES ('".$_POST['kill']."', '".$_POST['dead']."', '".$_POST['exp']."', '".$_POST['kasa']."', '".$_POST['godz_start']."', '".$_POST['min_start']."', '".$_POST['godz_kon']."', '".$_POST['min_kon']."')";
  8.  
  9. $wykonaj = mysql_query($query);
  10. [...]
  11. ?>
Cienki1980
Zapytanie wygląda poprawnie, może nie zgadza się coś z nazwami kolumn ... pokaż jeszcze może strukturę tabeli SQL.
muk4
Cytat
CREATE TABLE `records` (
`id` int(4) NOT NULL auto_increment,
`kill` varchar(4) collate latin1_general_ci NOT NULL,
`dead` varchar(4) collate latin1_general_ci NOT NULL,
`exp` varchar(6) collate latin1_general_ci NOT NULL,
`kasa` varchar(4) collate latin1_general_ci NOT NULL,
`godz_start` varchar(3) collate latin1_general_ci NOT NULL,
`min_start` varchar(3) collate latin1_general_ci NOT NULL,
`godz_kon` varchar(3) collate latin1_general_ci NOT NULL,
`min_kon` varchar(3) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
Cienki1980
Tu też wygląda wszystko poprawnie ... ostatnia myśl to zrób echo $query po tym jak stworzysz zapytanie i zobacz czy tworzy się poprawnie.
muk4
echo $query?
Kod
INSERT INTO records (kill, dead, exp, kasa, godz_start, min_start, godz_kon, min_kon) VALUES ('32', '32', '33', '2', '3', '24', '24', '2')


Czy powinny być apostrofy?
Cienki1980
Typy pól w bazie masz varchar więc na moje oko być powinny.

Sprawdź to zapytanie bezpośrednio w bazie ( np w phpMyAdminie ) i zobacz czy tam zadziała ... bo ja nie widzę nic niepoprawnego w tym zapytaniu.
muk4
PhpMyAdmin wywala ten sam błąd. Pewnie dlatego że wcześniej używałem mysql_error().

Zmieniłem zapytanie. Teraz wygląda tak:

"INSERT INTO records VALUES (tutaj te zmenne wszystkie)"

i działa ^^. Dzięki że chciałeś mi pomóc.
plurr
proponuje tworzyc krotkie zmienne, mniej problemow $imie = $_POST['imie'] itd. pozniej w insert into robisz values ('$imie') zamiast (..."'.$_POST['imie'].'"...
nospor
problem byl poniewaz slowo kill jest slowem zastrzezonym:
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
Powinienes byl wiec pisac `kill`
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.