Autor | Zpráva | ||
---|---|---|---|
karlanka Profil * |
#1 · Zasláno: 11. 5. 2008, 16:28:56
ahoj,
mám flashové hry, u kterých počítám počet spuštění. Vždy při načtení hry se zapíše jeden řádek do tabulky STATS. Cronem mám nastaveno spouštění skriptu, který podle ID hry spočítá počet řádků s jejím ID (tedy počet spuštění hry). Součet pak přičte k číslu v hlavní tabulce HRY. Kód je následující: $query = "SELECT * FROM stats"; $result = mysql_query($query) or die('Chyba databáze.'); while($row = mysql_fetch_array($result)) { $pocet = mysql_result(mysql_query("SELECT COUNT(idhry) FROM stats WHERE idhry='$row[idhry]'"), 0); $dotaz = ("UPDATE hry SET spusteno=spusteno+'$pocet' WHERE id='$row[idhry]' "); $zapis = mysql_query($dotaz); } mysql_db_query($db_name, "TRUNCATE TABLE stats") or die("chyba!"); Problém je, že mi to počítá nějak moc :(. Hra má třeba 100 spuštění, ale ten kód spočítá asi 1000, jakoby se to někde cyklylo ;). Nevidíte chybu? |
||
orava Profil |
#2 · Zasláno: 11. 5. 2008, 17:02:26
chyba je asi tu
spusteno=spusteno+'$pocet' |
||
peta Profil |
#3 · Zasláno: 12. 5. 2008, 13:49:14 · Upravil/a: peta
ja bych to psal jednotne, jinak souhlas s ORAVA
spusteno=spusteno+'$pocet' spusteno=spusteno+$pocet $pocet je cislo, kdezto puvodne: cislo + retezec = retezec -> prevod na cislo 12 + '3' = '123' -> 123 Mozna $dotaz = ("..."); A mozna "UPDATE hry SET spusteno=spusteno+'$pocet' WHERE id='--->$row[idhry]<---' "; ".$row[idhry]." ".$row['idhry']." function sq($query,$text='') {$res = mysql_query($query) or die("<hr>MySQL Err".$text.": $query<hr>".mysql_error()); return $res;} //debug mode $query = "SELECT * FROM stats"; $result = sq($query); while($row = mysql_fetch_array($result)) { $query1 = "SELECT COUNT(`idhry`) FROM `stats` WHERE `idhry`='".$row['idhry']."'"; $result1 = sq($query1); $pocet1 = mysql_result($result1, 0); $query2 = "UPDATE `hry` SET `spusteno`=`spusteno`+$pocet1 WHERE `id`='".$row['idhry']."' "; $zapis = sq($query2); } $query = "TRUNCATE TABLE `stats`"; sq($query); doporucuji pred cely script, nejlepe do configu jako prvni radky pridat: @ini_set('error_reporting', E_ALL); @ini_set("display_errors", "on"); error_reporting(E_ALL); |
||
Časová prodleva: 16 let
|
0