Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcja dodajaca pieniądze
darthblue
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Witam mam problem z tą funkcja
CODE
function dodaj($id, $ile) //dawanie złota
{
connect();
$ilekasy = "SELECT gold FROM gracze WHERE id='$id'";
$kasa = mysql_query($ilekasy);
$suma = $kasa + $ile;
$dajkase = "UPDATE gracze SET gold='$suma' WHERE id='$id'";
mysql_query($dajkase);
mysql_close();
}

Funkcja connect(); to polaczenie z baza
Problem polega na tym ze gdy uzyje tej funkcji
dodaj('1', '100');
to 100 domyslnych pieniedzy gracza o id 1 zmieni sie na 103 zamiast dodac 100(co wychodzi 200)
Prosze o pomoc
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
-Wieviór-
post
Post #2





Goście







Zrób może tak:

  1. <?
  2. $dajkase = "UPDATE gracze SET gold=gold+".$ile." WHERE id=".$id;
  3. mysql_query($dajkase);
  4. ?>


Ten post edytował Wieviór 14.02.2008, 17:55:55
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


1. Proszę dostosować tytuł wątku do zasad panujących na forum Przedszkole;
2. A nie można prościej?
  1. UPDATE tabela SET kasa = kasa + 100 WHERE id = 1;
Go to the top of the page
+Quote Post
darthblue
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Teraz wyglada to tak
CODE
function dodaj($id, $ile) //dawanie złota
{
connect();
$ilekasy = "SELECT gold FROM gracze WHERE id = '$id'";
$kasa = mysql_query($ilekasy);
$dajkase = "UPDATE gracze SET gold = $kasa + $ile WHERE id = '$id'";
mysql_query($dajkase);
mysql_close();
}

Ale nadal nie dziala, zaznaczam ze musze najpierw pozyskac informacje o posiadanej gotówce i wtedy do niej dodać określoną liczbe $ile

JUZ PO PROBLEMIE!!!
Zamienilem zapytanie na takie jak podał mike i dziala!!! Dzieki ci mike masz plusa!

Ten post edytował darthblue 14.02.2008, 18:54:07
Go to the top of the page
+Quote Post
rob3rt0
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 25.09.2007

Ostrzeżenie: (0%)
-----


A tak:
Kod
function dodaj($id, $ile) //dawanie złota
{
connect();
$dajkase = "UPDATE gracze SET gold = gold + '{$ile}' WHERE id = '{$id}'";
mysql_query($dajkase);
mysql_close();
}


Po co pobierasz tą ilość złota wcześniej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
darthblue
post
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Nastepny problem
CODE
$hpgracza = mysql_query("SELECT hp FROM gracze WHERE id = $id;");
$maxatk = mysql_query("SELECT max FROM gracze WHERE id = $id;");
$minatk = mysql_query("SELECT min FROM gracze WHERE id = $id;");
echo "$hpgracza";
echo "$maxatk";
echo "$minatk";


Kod zwraca takie cos Resource id #3Resource id #4Resource id #5 zamiast wartosci
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #7





Goście







Zobacz tak:

  1. <?php
  2. echo $hpgracza;
  3. echo $maxatk;
  4. echo $minatk;
  5. ?>
Go to the top of the page
+Quote Post
darthblue
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Cytat(Wieviór @ 14.02.2008, 19:34:13 ) *
Zobacz tak:

  1. <?php
  2. echo $hpgracza;
  3. echo $maxatk;
  4. echo $minatk;
  5. ?>

hmm nie pomoglo nadal zwraca te resources
Go to the top of the page
+Quote Post
nowotny
post
Post #9





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Cytat(darthblue @ 14.02.2008, 19:31:23 ) *
Kod zwraca takie cos Resource id #3Resource id #4Resource id #5 zamiast wartosci

Naucz się pobierać wyniki zapytania... zajrzyj do manuala i sobie poczytaj co zwraca mysql_query" title="Zobacz w manualu PHP" target="_manual... już w pierwszym poście miałeś źle ale ci nikt uwagi nie zwrócił...
http://pl.wikibooks.org/wiki/PHP/Jak_to_si...ie_wynik.C3.B3w
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #10





Goście







  1. <?
  2. $hpgracza_zap = mysql_query("SELECT hp FROM gracze WHERE id = $id;");
  3. $maxatk_zap = mysql_query("SELECT max FROM gracze WHERE id = $id;");
  4. $minatk_zap = mysql_query("SELECT min FROM gracze WHERE id = $id;");
  5.  
  6. $hpgracza = mysql_fetch_array($hpgracza_zap);
  7. $maxatk = mysql_fetch_array($maxatk_zap);
  8. $minatk = mysql_fetch_array($minatk_zap);
  9.  
  10. echo $hpgracza;
  11. echo $maxatk;
  12. echo $minatk;
  13. ?>


;]

Ten post edytował Wieviór 14.02.2008, 19:50:22
Go to the top of the page
+Quote Post
nowotny
post
Post #11





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Uprasza się o nie karmienie newbiesów gotowymi rozwiązaniami... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
darthblue
post
Post #12





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Cytat(Wieviór)
$hpgracza_zap = mysql_query(\"SELECT hp FROM gracze WHERE id = $id;\");
$maxatk_zap = mysql_query(\"SELECT max FROM gracze WHERE id = $id;\");
$minatk_zap = mysql_query(\"SELECT min FROM gracze WHERE id = $id;\");

$hpgracza = mysql_fetch_array($hpgracza_zap);
$maxatk = mysql_fetch_array($maxatk_zap);
$minatk = mysql_fetch_array($minatk_zap);

echo $hpgracza;
echo $maxatk;
echo $minatk;
?>[/php]

;]

TO tez nie dziala, wyskakuja bledy z mysql
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #13





Goście







  1. <?
  2. $sql = "SELECT hp FROM gracze WHERE id = ".$id;
  3. $wykonaj = mysql_query($sql);
  4. $hp = mysql_fetch_array($wykonaj);
  5.  
  6. echo $hp;
  7. ?>


Tu masz ogólny zarys. Popróbuj też coś czasem sam ;]

@nowotny - słusznie, ale niech ma ;]
Go to the top of the page
+Quote Post
darthblue
post
Post #14





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Cytat(Wieviór @ 14.02.2008, 19:56:14 ) *
  1. <?php
  2. $sql = &#092;"SELECT hp FROM gracze WHERE id = \".$id;
  3. $wykonaj = mysql_query($sql);
  4. $hp = mysql_fetch_array($wykonaj);
  5.  
  6. echo $hp;
  7. ?>


Tu masz ogólny zarys. Popróbuj też coś czasem sam ;]

@nowotny - słusznie, ale niech ma ;]

Sorry ale mysql to moja slaba strona... Skrypt zwraca ArrayArrayArray
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #15





Goście







No a popatrz na ten twój kod, jakieś znaczki dziwne na początku zmiennej $sql i ten slash przed id, po co?
Go to the top of the page
+Quote Post
anonim1133
post
Post #16





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


Zwraca Ci tablice (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) musisz coś z nimi zrobić, albo skożystać z konkretncyh wartości, albo wyświetlić każde otrzymane pole
1) Sprawdź print_r($tablica) <- wyświetli Ci całą tablicę
2) Zainteresuj się foreach
Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
darthblue
post
Post #17





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Cytat(anonim1133 @ 14.02.2008, 20:09:13 ) *
Zwraca Ci tablice (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) musisz coś z nimi zrobić, albo skożystać z konkretncyh wartości, albo wyświetlić każde otrzymane pole
1) Sprawdź print_r($tablica) <- wyświetli Ci całą tablicę
2) Zainteresuj się foreach
Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a czemuz to tablice skoro wybieram z tabeli tylko jedna zmeinna czyli np. hp
Go to the top of the page
+Quote Post
anonim1133
post
Post #18





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


będę szczery też mnie to na początku bolało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ale funkcja jak sama nazwa wskazuje pobiera tablice, ale to chyba nie jest większą przeszkodą? tablice czasem są nawet wygodniejsze przy 'obróbce' ;-)
Go to the top of the page
+Quote Post
darthblue
post
Post #19





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.02.2008
Skąd: Pomorze

Ostrzeżenie: (0%)
-----


Cytat(anonim1133 @ 14.02.2008, 20:19:43 ) *
będę szczery też mnie to na początku bolało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ale funkcja jak sama nazwa wskazuje pobiera tablice, ale to chyba nie jest większą przeszkodą? tablice czasem są nawet wygodniejsze przy 'obróbce' ;-)


To napraw to zeby bylo dobrze
CODE
function fightmob($id, $mhp, $maxdmg, $mindmg) //gracz o podanym id walczy z mobkiem o podanym hp, maksymalnym ataku maxdmg i minimalnym mindmg
{
connect();
$hpgracza = mysql_query("SELECT hp FROM gracze WHERE id = $id;");
$maxatk = mysql_query("SELECT max FROM gracze WHERE id = $id;");
$minatk = mysql_query("SELECT min FROM gracze WHERE id = $id;");
echo "Twoje hp: '$hpgracza', max atak to: '$maxatk' a min atak to: '$minatk'";
mysql_close();
}
fightmob('1', '1', '1', '1');


Ten post edytował darthblue 14.02.2008, 20:31:25
Go to the top of the page
+Quote Post
anonim1133
post
Post #20





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function fightmob($id, $mhp, $maxdmg, $mindmg){ //gracz o podanym id walczy z mobkiem o podanym hp, maksymalnym ataku maxdmg i min
  3. malnym mindmg
  4. connect();
  5. $q = mysql_fetch_assoc(mysql_query("SELECT `hp`,`max`,`min` FROM `gracze` WHERE `id` = '$id' LIMIT 1"));
  6. echo 'Twoje hp: '.$q[hp].', max atak to: '.$q[max].' a min atak to: '.$q[min];
  7. }
  8. fightmob('1', '1', '1', '1');
  9. ?>


tak powinno być dobrze... chociaż mogłeś poprosić, albo grzecznie spytać... aaale ;-) ZRÓB PAN, no to zrobiłem ( ty sprawdź czy działa;p )
tak swoją drogą, co funkcja to połączenie z bazą? ja się nie znam, ale teoretycznie, to chyba lepiej by było raz na początku skryptu się łączyć, i każde zapytanie korzystało by sobie z połączenia? teoretycznie powinno to być lepsze rozwiązanie... tak mi się wydaje ;-)

Ten post edytował anonim1133 14.02.2008, 20:39:36
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:58