lucardo
30.03.2006, 18:30:16
Witam!
Próbuję zrobić kalkulatorek, ktory pokazywałby ile jeszcze potworków trzeba w grze zabic(zdobyc przez to punktow), aby awansować na następny level, podzieliłem to sobie na 2 części: ustalenie obecnego levela na podstawie podanych w formularzu obecnych punktow i zamianę ich na ilość potworkow do zabicia. 2 częsć już mam, jednak z 1 mam problem:
Stworzyłem tabelę "calc_level" która zawiera pole : level oraz exppoint np.:
0 || 0
1 || 0
2 || 100
3 || 200
4 || 500
5 || 1200
itd..........
Problem zaczyna się właśnie tu, do tej pory nie operowałem na bazie danych , a aktualny level uzyskiwałem z tabeli:
i=0;
j=2;
petla wykonywana np 100 razy{
warunek : jeżeli podany exp > tabela[i] oraz exp< tabela[j]
to wtedy brake; a level to był i+1 (albo j-1)
w przeciwnym wypadku i++; j++;
}
Niestety nie znam sie na bazach danych, wiec nie wiem jak wyciągac z nich dane ;\
Bardzo wszystkich prosze o możliwie jak najkrotszą odpowiedź.
Pozdrawiam!!
eS...
30.03.2006, 19:18:52
jezeli nie znasz sie na bazach to poczytaj
http://dev.mysql.com/doca potem
http://php.net (mysql_query,mysql_fetch_array....)
I poradzisz sobie
eS...
30.03.2006, 19:39:39
nic nie rozumiem co chcesz wyciagnac ale ogolna idea wyglada tak
wyciaganie danych z level exppoint
<?php
echo $row["level"]." - ".$row["exppoint"]."<br />"; }
?>
mam nadzieje ze z baza danych umiesz sie polaczyc, jesli nie sprawdz
http://php.net/mysql_connect i
http://php.net/mysql_query
lucardo
30.03.2006, 19:55:46
Dobra pokaze jak ja to chcialem zrobic, nie przerazcie sie tylko

<?php
$i=0;
$j=2;
$j=1;
$c=0;
for ($c=0 ; $c<=100 ; $c++ )
{$resulti = mysql_query("SELECT exppoint FROM calc_level WHERE level='$i'"); $resultj = mysql_query("SELECT exppoint FROM calc_level WHERE level='$j'"); $resultk = mysql_query("SELECT exppoint FROM calc_level WHERE level='$k'"); $leveli = $ri['exppoint'];
$levelj = $rj['exppoint'];
$levelj = $rk['exppoint'];
if ($exp>$$leveli && $exp<$levelj)
{
break;
}
else
{
$j=$j+1;
$i=$i+1;
$k=$k+1;
}
}
$level=$leveli+1;
?>
spenalzo
30.03.2006, 20:55:42
Jeżeli dobrze zrozumiałem, to powiedzmy że ktos w formularzu wpisuje wartosc expa 12345 i ma znaleźć jaki odpowiada temu level? Jeżeli tak to:
SELECT *
FROM tabela
WHERE exppoint<'12345' ORDER BY level DESC LIMIT 1
lucardo
31.03.2006, 08:08:44
aha bardzo fajnie, czyli wyszuka tylko 1 rekord ? a czy jako '12345' moge dac zmienna czyli np $exp ?
======================
A wtedy jak zapisać do zmiennej wartość sąsiedniego pola "level", bo teraz znajduje wiersz po liczbie podanej w formularzu.
Czekam na odp. ;]
spenalzo
31.03.2006, 17:01:54
Ke?

Nie rozumiem kompletnie o co ci chodzi....
lucardo
31.03.2006, 18:16:00
Dobra nie musicie juz, bardzo mi pomogliscie mam to co chcialem miec.

no i przy okazji sie troche nauczylem ;D teraz tylko wrzucic pelna liste potworków do bazy. Mozna zamknac temat