ďťż

[php&mysql]Nie dodaje nowej wartości do bazy

       

Podstrony


telcocafe

Mam taki kodzik:
if ($bot['hp'] <= 0) { print "<br><b>".$stat['user']."</b> jest zwycięzcą!<br>"; $kasa_wygrana = (rand(15,20) * $bot['lvl']); //dorobic!!! print "<b>".$stat['username']."</b> dostał <b>$kasa_wygrana</b> kasy.<br>"; $nowa_kasa = $stat['kasa'] + $kasa_wygrana; mysql_query("update `user` set kasa = '$nowa_kasa' where `username` = '$u'"); } else { attackback(); } }
Który powinien jeżeli user wygrał walkę z potworkiem zaktualizować wartość posiadanych pieniędzy, lecz wcale to nie działa... I nawet nie wiadomo czemu :/ co może być tu źle??



IMO blad jest tu:mysql_query("update `user` set kasa = '$nowa_kasa' where `username` = '$u'");
ja bym to zapisal tak:
mysql_query('update user set kasa = "'.$nowa_kasa.'" where username = "'.$u.'"');

jest coś takiego jak obsługa błędów - nie stosujesz to nie wiesz dlaczego i czy zapytanie się nie powiodło ;) Napisanie "gry" to jedno, lecz stworzenie dobrego kodu to "drugie". A samym "napisałem grę w PHP" nie zaimponujesz potencjalnemu pracodawcy w przyszłości - będzie chciał zobaczyć kod twoich dzieł.


IMO blad jest tu:mysql_query("update `user` set kasa = '$nowa_kasa' where `username` = '$u'");
ja bym to zapisal tak:
mysql_query('update user set kasa = "'.$nowa_kasa.'" where username = "'.$u.'"');


Tak też próbowałem...
A mysql_error() nie wywala błędow... I tu jest problem :/



to widocznie nie ma takiego rekordu. Zmienna $u to w ogóle istnieje? (poza tym w WHERE powinieneś operować na kolumnach mających indeksy lub będącymi kluczami głównymi - np. id rekordu.)


Zmienna $u to w ogóle istnieje?
Zmienna $u istnieje

poza tym w WHERE powinieneś operować na kolumnach mających indeksy lub będącymi kluczami głównymi - np. id rekordu.
to co uzyć jak nie WHERE, bo raczej nie widziałem innego sposobu ;p??
//edit:
ale miałem gdzieś indziej w kodzie tak:
$stat = mysql_fetch_array(mysql_query("select * from user where username='$u'")); i działało... to więc o co chodzi??...
Użytkownik prondzyk edytował ten post 14 kwiecień 2008, 14:57
echo("update `user` set kasa = '$nowa_kasa' where `username` = '$u'");
Spróbuj tak. Może dojżysz jakiś błąd. Potem zobacz co się stanie jak to co się pokaże wkleisz w SQL do phpmyadmina.

Nie wiem jak to się stało odpaliłem kompa włączyłem locahosta sprawdzam i działa xD ale przed wyłączeniem wcześniej kompa nie działało a cały skrypt był taki sam ^^ hehe
Ale i tak wielkie THX
Użytkownik prondzyk edytował ten post 14 kwiecień 2008, 15:39
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.