While ciklussal megoldható ez a példa?
Egy lekérdezést csinálok, hogy az én pénzemet vegye figyelembe egy az adatbázisban lévő személlyel. Lekérdezi, hogy neki mennyi és mennyi az enyém, majd egy random (1,6) számot használ. Tehát én pénzem:250ft Béla pénze:1000ft akinek kisebb a random számja annak kivonja a másik ember randját a pénzéből és ezt 3 körön keresztül csinálja. és a végén kiírná pl:béla sebzett 20-t te 255-t, mivel te sebezted a többet te nyertél. Mit kéne kijavítanom?
$kor = 3;
$tomb = array();
$tomb[0] = 0;
$x = 1;
while ( $x <= $kor )
{
$y=0;
$tomb_elemek_szama = count($tomb);
while ( $y <= $tomb_elemek_szama)
{
$enrand=mt_rand(1,6);
$ellenfelrand=mt_rand(1,6);
if($enrand != $tomb[$y])
{$y=$y+1;}
}
$tomb[$x] = $enrand;
if($ellenfelrand > $enrand)
{
print "<br>";
print "Az ellenfel randja nagyobb :$ellenfelrand és az enyém :$enrand";
mysql_query("UPDATE users SET arany= arany- '$ellenfelrand' WHERE id = '$stat[ID]'");
}
else
if($enrand > $ellenfelrand)
{
print "<br>";
print " Az enyém nagyobb : $enrand és az övé : $ellenfelrand";
mysql_query("UPDATE users SET eletero = eletero - '$enrand' WHERE id = '$rec[ID]'");
}
$x=$x+1;
}
Meg a jövőre nézve: SOHA nem rakj be olyan input-ot egy adatbázis query-be, amibe a felhasználó értéket beírhat. SOHA.
Ennél nagyobb biztonsági rést nehéz nyitni egy weblapon. Jobb ha most megszokod, mintha később szívsz vele :)
if( $stat[penz] > 0 && $rec[penz] > 0)
{
$x = 1;
$kor=10;
while ( $x <= $kor )
{
$enrand=mt_rand(1,6);
$ellenfelrand=mt_rand(1,6);
if($ellenfelrand >= $enrand)
{
print "<br>";
print "Az ellenfel randja nagyobb :$ellenfelrand és az enyém :$enrand";
mysql_query("UPDATE users SET penz = penz - '$ellenfelrand' WHERE id = '$stat[ID]'");
}
else
if($enrand > $ellenfelrand)
{
print "<br>";
print " Az enyém nagyobb : $enrand és az övé : $ellenfelrand";
mysql_query("UPDATE users SET penz = penz - '$enrand' WHERE id = '$rec[ID]'");
}
$x=$x+1;
}
}
else
if($stat[penz] <= 0)
{echo "elfogyott a pénzed ő nyert";}
else
if($rec[penz] <= 0)
{echo"ellenfeled pénze elfogyott te nyertél";}
idáig jutottam,de ez 10 körön keresztül fut,addig szeretném,hogy fusson,míg valamelyiknek vagy mindkettőjüknek nulla nem lesza pénzze.Ötlet valakinek?
Behelyettesíteni?
Ez nem puzzle.
Hol kéred le a felhasználó pénzét?
Mi a búbánatnak írod bele újra és újra az adatbázisba?
Miért a köröket számolod, ha a pénz elfogyását akarod?
Mik azok a tömbök?
while ($stat[penz] > 0 && $rec[penz] > 0)
{
$enrand=mt_rand(1,6);
$ellenfelrand=mt_rand(1,6);
if($ellenfelrand >= $enrand)
{
$enpenz=$stat[penz]-$ellenfelrand;
print "<br>Pénzem: $stat[penz] , $enpenz,-$ellenfelrand ";
$stat[penz]-=$ellenfelrand;
}
if($enrand > $ellenfelrand)
{
print "<br>Pénze: $rec[penz], ";
$rec[penz]-=$enrand;
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!