![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Tabela ma wzór: co ile auto1 0 auto2 0 auto3 0 ... auto10 0 Chciałbym aby po oddaniu głosu(kod php, sonda typu 'radio') na odpowiednie auto dodawał się w Tabeli SQL głos(+1) w kolumnie 'ile'. Dosyć dużo zrobiłem w kodzie jednak coś robię nadal nie tak;/
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
co w tym zapytaniu:
to nazwa kolumny w tabeli w bazie danych, a nazwy kolumn obejmujemy gravisami (`, znaczek z tyldą na klawiaturze), a nie apostrofami '. Rozumiem, że tworzenie tabeli i dodawanie nowych rekordów odbywa się tylko raz. Pozostaje jeszcze kwestia wyglądu formularza, czy jesteś pewien, że w $_POST['auto'] znajduje się odpowiednia wartość? Debuguj zapytania SQL: Ten post edytował mortus 25.03.2012, 12:12:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
co w tym zapytaniu:
to nazwa kolumny w tabeli nazwa kolumny to 'ile' i 'co' Cytat w bazie danych, a nazwy kolumn obejmujemy gravisami (`, znaczek z tyldą na klawiaturze), a nie apostrofami '. Czyli ? Cytat Rozumiem, że tworzenie tabeli i dodawanie nowych rekordów odbywa się tylko raz. Nad tym muszę jeszcze popracować. Na razie wykluczam ten fragment poprzez komentarz. Cytat Pozostaje jeszcze kwestia wyglądu formularza, czy jesteś pewien, że w $_POST['auto'] znajduje się odpowiednia wartość? Wydaje mi się, że tak. skoro wcześniej przy zapisywaniu do pliku korzysta z tego samego elementu(dodając .txt) to czy nie zadziała to dla bazy? Cytat Debuguj zapytania SQL: poprawię |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Ciągle nieprawidłowo budujesz zapytanie, tylko nazwy kolumn w tabeli w bazie danych obejmujemy gravisami, natomiast wartości obejmujemy apostrofami. Dodatkowo zmienna $_POST['auto'] jest nadal zmienną PHP i powyższa reguła nie ma do niej zastosowania. Powinno być:
No i jeśli wszystko inne działa dobrze, to i to zapytanie powinno zadziałać. Ten post edytował mortus 25.03.2012, 12:38:55 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za pomoc. Na razie nie działa mi serwer, więc nie mogę sprawdzić czy działa. Dam znać przy najbliższej okazji (IMG:style_emoticons/default/wink.gif)
hej, udało mi się w końcu dostać do serwera. Otrzymałem taki komunikat o błędzie: 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 '(`ile`) = (`ile`) + 1 WHERE (`co`) = 'auto10' at line 1 widzę już że czyta poprawnie $_POST['auto'] ponieważ jest w treści 'auto10' na które akurat chciałem głosować. To nie zmienia faktu że jest gdzieś błąd ;/ podam kod:
Proszę o pomoc. Pozdrawiam (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Mój błąd, skopiowałem Twoje zapytania z nawiasami i to one powodują błąd. Powinno być:
@down: Jeszcze apostrofa brakowało. Poprawiłem. Ten post edytował mortus 27.03.2012, 13:40:58 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
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 ''auto10' at line 1
teraz coś takiego (IMG:style_emoticons/default/tongue.gif) a może jednak źle czyta tę $_POST['auto']... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
mysql_error to nie jest żadne debugowanie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
dałem tak jak radził viking i wyszedł błąd: Unknown column 'auto10' in 'where clause'
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Bo kolega viking poprawił źle. Do tego gdzie jest błąd doszedłbyś sam, gdybyś zastosował nieco inny zapis:
@viking: z komunikatów błędów mysql_error() można bardzo wiele wyczytać, jeśli tylko ktoś potrafi je właściwie zinterpretować i zawsze jest to jakiś sposób na "debugowanie" błędów (tym razem napisałem słówko debugowanie w cudzysłowie, żebyś nie zrozumiał zbyt dosłownie). EDIT: Powyżej też poprawiłem. Ten post edytował mortus 27.03.2012, 13:52:43 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.02.2012 Skąd: Głogów - Opole Ostrzeżenie: (0%) ![]() ![]() |
trochę mi mieszacie, teraz mam błąd : syntax error, unexpected '=' in /home/p13/domains/p13.nsf.pl/public_html/sonda/ankieta.php on line 69
ale nadal nie wiem jak to naprawić. Z błędu wyczytuję że jest niepoprawnie (wstawiony?) znak '=' ale co z tym zrobić.. to ni wiem... EDIT: ten błąd wyskakuje po użyciu powyższego kodu mortusa... Ten post edytował eremen 27.03.2012, 14:07:39 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zjadłem apostrofy wokół mysql_real_escape_string. Ale powinieneś z tego wyciągnąć kilka wniosków.
1) Czytać dokumentację bo masz tam bardzo czytelny przykład ze sprintf 2) wartość stringowa wstawiana do bazy bez quotów jest traktowana jak kolumna 3) zabezpieczaj zawsze skrypty 4) poczytać o PDO @mortus Dawno nie pisałem nic w "gołym" mysql i nawet nie mam jak sprawdzić ale po co `` wokół wszystkiego co się da? |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@mortus Dawno nie pisałem nic w "gołym" mysql i nawet nie mam jak sprawdzić ale po co `` wokół wszystkiego co się da? To z przyzwyczajenia (IMG:style_emoticons/default/smile.gif) Tak mi się jakoś utrwaliło ostatnimi czasy obejmowanie nazw kolumn gravisami. Być może to przez użytkowników tego forum, którzy czasami nazywają kolumny w swoich tabelach np. time, date, a to powoduje błędy w zapytaniach, jeśli się takiej nazwy kolumny gravisami nie obejmie. @eremen: Dobry edytor z kolorowaniem składni powinien wszystko pokazać. Dodatkowo polecam poczytać lekturę obowiązkową. Ten post edytował mortus 27.03.2012, 14:05:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 14:10 |