Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> 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
-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
darthblue
post
Post #21





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:37:24 ) *
  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(&#092;"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 ;-)

Przepraszam za niegrzecznosc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wkoncu dziala... Daje piwo, neikoniecznie z alkoholem
Go to the top of the page
+Quote Post
anonim1133
post
Post #22





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

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


nie ma sprawy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) w końcu za to mi płacą (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nowotny
post
Post #23





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

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


OT: no i darthblue się niczego nie nauczył... następnym razem znowu tu przyjdzie i znowu ktoś mu da gotowca... ehhh... :/
Go to the top of the page
+Quote Post
darthblue
post
Post #24





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

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


Ok ostatnia sprawa, wiecej nie napisze...
CODE
function fightmob($id, $mhp, $maxdmg, $mindmg) //gracz o podanym id walczy z mobkiem o podanym hp, maksymalnym ataku maxdmg i minimalnym mindmg
{
connect();
$q = mysql_fetch_assoc(mysql_query("SELECT hp,max,min FROM gracze WHERE id = $id LIMIT 1"));

while($q[hp] > '0' && $mhp > '0'){

srand(time());
$traf = rand(0, 4);

if($traf != '0'){
srand(time());
$hit = rand($q[min], $q[max]);
$mhp = $mhp - $hit;
echo "Trafiasz kosmite. Obrażenia $hit"
}
srand(time());
$traf = rand(0, 4);
if($traf != '0')
{
srand(time());
$hit = rand($mindmg, $maxdmg);
$q[hp] = $q[hp] - $hit;
echo "Kosmita cie trafia. Obrażenia $hit"
}
}else echo "Koniec walki!!!";


}

fightmob('1', '100', '2', '5');

Taki sobie kodzik na walke ktory losuje czy jest trafienie czy pudlo a jak trafienie to losuje atak z przedzialu ataku max i min. Gdzies cos jest zle i pisze Parse error: syntax error, unexpected '}', expecting ',' or ';' na lini 24. Szuakm teraz czego brakuje jakiej klamry ale nic nie pomaga...
Go to the top of the page
+Quote Post
nowotny
post
Post #25





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

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


Średników ci brakuje... gdzie, to już zobie znajdź... masz podane jak na tacy... :/
Go to the top of the page
+Quote Post
darthblue
post
Post #26





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

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


Cytat(nowotny @ 14.02.2008, 21:11:12 ) *
Średników ci brakuje... gdzie, to już zobie znajdź... masz podane jak na tacy... :/

dziex szkoda ze te liczby losowe jakos tak dziwnie dzialaja caly czas takie same hity leca np.
Trafiasz kosmite. Obrazenia 23, zycie kosmity: 77
Kosmita cie trafia. Obrazenia 23, zycie: 96
Trafiasz kosmite. Obrazenia 23, zycie kosmity: 54
Kosmita cie trafia. Obrazenia 23, zycie: 92
Trafiasz kosmite. Obrazenia 23, zycie kosmity: 31
Kosmita cie trafia. Obrazenia 23, zycie: 88
Trafiasz kosmite. Obrazenia 23, zycie kosmity: 8
Kosmita cie trafia. Obrazenia 23, zycie: 84
Trafiasz kosmite. Obrazenia 23, zycie kosmity: -15
Kosmita cie trafia. Obrazenia 23, zycie: 80
Koniec walki!!!
Wygral gracz!!!

A POTEM

Trafiasz kosmite. Obrazenia 11, zycie kosmity: 89
Kosmita cie trafia. Obrazenia 11, zycie: 95
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 78
Kosmita cie trafia. Obrazenia 11, zycie: 90
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 67
Kosmita cie trafia. Obrazenia 11, zycie: 85
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 56
Kosmita cie trafia. Obrazenia 11, zycie: 80
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 45
Kosmita cie trafia. Obrazenia 11, zycie: 75
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 34
Kosmita cie trafia. Obrazenia 11, zycie: 70
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 23
Kosmita cie trafia. Obrazenia 11, zycie: 65
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 12
Kosmita cie trafia. Obrazenia 11, zycie: 60
Trafiasz kosmite. Obrazenia 11, zycie kosmity: 1
Kosmita cie trafia. Obrazenia 11, zycie: 55
Trafiasz kosmite. Obrazenia 11, zycie kosmity: -10
Kosmita cie trafia. Obrazenia 11, zycie: 50
Koniec walki!!!
Wygral gracz!!!

A czasami przez wiele tur nikt nie trafia i dopiero przy koncu sie zabija ;//

Ten post edytował darthblue 14.02.2008, 21:36:49
Go to the top of the page
+Quote Post
rob3rt0
post
Post #27





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

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


to jak chcesz losowo to weź rand()
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: 2.10.2025 - 10:09