Autor | Zpráva | ||
---|---|---|---|
funkcionář Profil * |
#1 · Zasláno: 9. 4. 2008, 21:23:50
Ahoj, mám tento kód, který by měl ve výsledku ukázat náhodnou kartu, která se nebude opakovat, ale mám problém v tom, že někdy mi vyhodí prázdné místo
require 'mysql.php'; function NahodnaKarta() { if(!mysql_query("SELECT * FROM partie")) { mysql_query("CREATE TABLE partie (cislo INT,pouzita VARCHAR(10) UNIQUE)"); mysql_query("INSERT INTO partie (cislo,pouzita) VALUES(1,0)"); } $barva = array(1=>"srdce","listy","piky","kara"); $cislice = array(2=>2,3,4,5,6,7,8,9,10,"j","q","k","a"); $partieNeserazena = mysql_query("SELECT * FROM partie WHERE cislo=1"); $nahodnaBarva = $barva[rand(1,4)]; $nahodnaCislice = $cislice[rand(2,14)]; $bylaPouzita=false; while($partie = mysql_fetch_array($partieNeserazena)) { if(ereg($nahodnaBarva."-".$nahodnaCislice,$partie['pouzita'])) { $bylaPouzita=true; } } if($bylaPouzita) { NahodnaKarta(); } else { mysql_query("INSERT INTO partie (cislo,pouzita) VALUES (1,'[1]".$nahodnaBarva.'-'.$nahodnaCislice."')"); return "<img src=\"karty/".$nahodnaBarva."-".$nahodnaCislice.".png\">"; } if(mysql_num_rows($partieNeserazena)==53) { return "Všechny karty již byly použity."; } } echo NahodnaKarta()."<br>"; bude tam určitě problém s if($bylaPouzita) {NahodnaKarta();} ale nevím jak dokázat, aby se tato funkce pořád opakovala do doby, než by to našlo ještě nepoužitou kartu. Poradíte někdo prosím? Předem děkuji za odpověď. |
||
funkcionář Profil * |
#2 · Zasláno: 10. 4. 2008, 17:41:04
Tak díky za "pomoc", nakonec jsem to vyřešil sám. Kdyby to někdo chtěl použít tak to mám takto:
require 'mysql.php'; function NahodnaKarta() { if(!mysql_query("SELECT * FROM partie")) { mysql_query("CREATE TABLE partie (cislo INT,pouzita VARCHAR(11) UNIQUE)"); mysql_query("INSERT INTO partie (cislo,pouzita) VALUES(1,0)"); } $barva = array(1=>"srdce","listy","piky","kara"); $cislice = array(2=>2,3,4,5,6,7,8,9,10,"j","q","k","a"); $partieNeserazena = mysql_query("SELECT * FROM partie WHERE cislo=1"); $nahodnaBarva = $barva[rand(1,4)]; $nahodnaCislice = $cislice[rand(2,14)]; $bylaPouzita=false; if(mysql_num_rows($partieNeserazena)==53) { return "Všechny karty již byly použity."; } else { while($partie = mysql_fetch_array($partieNeserazena)) { if(ereg($nahodnaBarva."-".$nahodnaCislice,$partie['pouzita'])) { $bylaPouzita=true; } } if($bylaPouzita) { return NahodnaKarta(); } else { mysql_query("INSERT INTO partie (cislo,pouzita) VALUES (1,'[1]".$nahodnaBarva.'-'.$nahodnaCislice."')"); return "<img src=\"karty/".$nahodnaBarva."-".$nahodnaCislice.".png\">"; } } } echo NahodnaKarta()."<br>"; |
||
Časová prodleva: 16 let
|
0