Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z aktualizowaniem rekordów w bazie MYSQL
Forum PHP.pl > Forum > PHP
Artheso
Witam... mam pewien problem... Oto kod:

  1. <?php
  2. require('conn.php');
  3.  
  4. $dodajexp = "UPDATE tabela SET "exp = exp + 10 WHERE ID='1'";
  5. mysql_query($query);
  6.  
  7. ?>


Problem polega w tym, że chyba źle coś zrobiłem... Chciałbym, aby do tabeli w rubrykę exp zwiększało liczbę, która się tam znajduje o 10... Czyli, że jak jest 0 to będzie 10, po odświeżeniu strony ze skryptem 20, itd... A to nie działa...

Mam nadzieję, że ktoś mi pomoże... Pozdrawiam, Artheso winksmiley.jpg
blooregard
Zapraszam do zapoznania się z tym tematem:
Temat: Jak poprawnie zada pytanie
Artheso
Nie wyskakuje żaden błąd... wszystko jest tak jakby dobrze... ale nie aktualizuje ;/
blooregard
~Artheso, zapewniam Cię , że jak włączysz raportowanie błędó, to wyskoczy.
Zresztą, popatzr na swój kod w BBCode. Nie zastanawia Cię zmiana koloru zapytania po SET?
Artheso
No dobrze...
teraz kod wygląda tak:

  1. <?php
  2. require('conn.php');
  3.  
  4.  
  5.  
  6. ini_set('display_errors','1');
  7.  
  8.  
  9. $sql = 'jakieś zapytanie';
  10.  
  11. echo 'ZAPYTANIE:'.$sql;
  12.  
  13. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  14.  
  15. $dodajexp = "UPDATE tabela SET "exp = exp + 10 WHERE ID='1'";
  16.  
  17.  
  18. ?>


Po dopisaniu tego wyskoczył taki błąd:

Parse error: syntax error, unexpected T_STRING in /virtual/b/a/battleknight.ugu.pl/aktual.php on line 16

Czy mógłby mi ktoś pomóc? Nie rozumiem zbyt bardzo PHP...

blooregard
No i masz wyraźnie napisane JAKI błąd i GDZIE.
~Artheso, pomyśl trochę.
Artheso
Fajnie. Dzięki za odpowiedź, bardzo mi pomogłeś. A tak na serio, no to wiem, że w tej linijce jest błąd, gdybym o tym nie wiedział to bym nie zakładał tego tematu. I pytałem się, czy ktoś mi może pomóc w naprawie błędu, a nie w znalezieniu błędu. I napisałem, że niezbyt bardzo znam php, więc nie wiem o co z tym chodzi.
gigzorr
  1. #
  2. $dodajexp = "UPDATE tabela SET "exp = exp + 10 WHERE ID='1'";
  3. #
  4.  


ja tez nie umiem , ale po bledzie , i policzeniu cudzyslowow wiadomo co jest źle
Artheso
Po zmianie nadal ten sam błąd wyskakuje.
DiH
Co byś nie robił, jeżeli zaczynasz wyrażenie, czy to od ", ' albo ` to napisanie później w dowolnym momencie drugiego takiego znaku spowoduje zamknięcie otwartego wcześniej wyrażenia. W zapytaniach MySQL nazwy pól, tabel etc. zawieramy pomiędzy ``, chociaż nie ma obowiązku stosowania ich. Nie wiem natomiast skąd wziął Ci się ten podwójny cudzysłów pośrodku Twojego stringa.

Sprawdzając warunek pamiętaj o typie danych jaki sprawdzasz. Dla stringów owszem, powinno to być WHERE pole='wartosc'. Jednak dla liczb raczej WHERE pole=wartosc.

Pozdrawiam

Edit: Wklej po "poprawieniu".
Artheso
Poprawiłem na coś takiego:

  1. $dodajexp = "UPDATE 'tabela' SET 'exp' = 'exp' + 10 WHERE ID='1'";


Ale nadal nie działa.. co jest źle?
gigzorr
Cytat(Artheso @ 26.03.2010, 17:08:06 ) *
Poprawiłem na coś takiego:

  1. $dodajexp = "UPDATE 'tabela' SET 'exp' = 'exp' + 10 WHERE ID='1'";


Ale nadal nie działa.. co jest źle?



ja moge sie mylić , a napewno tak jest , ale czegos sie dowiem chociaz :
dla mnie to tak powinno wygladać

  1. $dodajexp = "UPDATE tabela SET exp = 'exp' + 10 WHERE ID=1";
DiH
@up Obydwaj przeczytajcie ze zrozumieniem mojego posta, a będzie wiadomo co jest nie tak.
luck
@DiH - Miej litość człowieku smile.gif Widzisz, że rzucasz grochem o ścianę winksmiley.jpg
  1. $dodajexp = "UPDATE tabela SET exp = exp + 10 WHERE ID=1";
Jako następny poziom wtajemniczenia proponuję autorowi tematu w ramach ćwiczeń napisać skrypt, który wykona skomplikowaną operację wyświetlenia cudzysłowia na stronie.
Artheso
OMG... DiH, skoro się tak wymądrzasz, to napisz to tak, jak ma być -.-

Edit:

Chciałem jeszcze dodać, że gdy w SQL wpiszę:

  1. UPDATE tabela SET exp = exp + 10 WHERE ID=1


To normalnie liczba exp zmienia się o 10... I tu pytanie... jak ten kod umieścić w php? Aby poprawnie aktualizował tabelę w taki sposób?
DiH
Autorze tematu, na tym forum jest przynajmniej 1337 wątków, w których mógłbyś znaleźć odpowiedź na swoje pytanie. Nie musiałbyś czekać, nie musiałbyś tracić nerwów. A wszystko to, gdybyś wykazał za grosz samodzielności. Jeżeli planujesz karierę w programowaniu lub informatyce w ogóle szczerze doradzam Ci byś nabył, być może niedocenianą przez Ciebie, umiejętność szukania odpowiedzi na swoje problemy w manualu lub kursach.
Artheso
Skoro jest tyle takich tematów, to podaj mi linka do chociaż jednego smile.gif O ile potrafisz znaleźć smile.gif
luck
Cytat(Artheso @ 26.03.2010, 17:48:05 ) *
Skoro jest tyle takich tematów, to podaj mi linka do chociaż jednego smile.gif O ile potrafisz znaleźć smile.gif

Stary, robisz sobie jaja. Nie potrafisz nawet ogarnąć tematu, który ma łącznie ok. 15 postów, nie mówiąc o znalezieniu odpowiedzi na całym forum.
DiH
Zakładając, że jesteś jednym z czcicieli wielkiego G, lub przynajmniej wiesz, że istnieje taka wyszukiwarka jak Google, to zapewne pomyślałeś, ażeby wpisać weń "mysql where". Czy może nie starczyło czasu? Zobacz także jakie ładne podpowiedzi zaserwuje Ci Google na samym dole.
Artheso
To mnie rozbawiłeś winksmiley.jpg Sam sobie poszukaj w googlach, to zobaczysz, że nie ma tak łatwo winksmiley.jpg Głowię się z tym od dobrych kilku godzin, i nie wmawiaj, że szkoda mi czasu

Dobra, poradziłem sobie sam, wszystko działa winksmiley.jpg Napisałem wszystko od nowa smile.gif
DiH
http://www.google.pl/search?hl=pl&q=mysql+where
Za przeproszeniem, nie p...
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.