Mammouth du PHP |
555 Messages
27 avr. 2007, 18:23
Wow Sadeq t'es trop fort! Une seconde supplémentaire d'économisée presque!
Sinon je me suis un peu baladé sur le site que tu m'as donné Naholyr et j'ai appris pas mal de trucs, comme ce qu'étais globalement un index, ce dont je ne me sert jamais car je n'en soupconnait pas l'existence...
Voila la syntaxe exacte de la table meteo
CREATE TABLE `meteo` (
`id` int(11) NOT NULL auto_increment,
`x` int(11) NOT NULL,
`y` int(11) NOT NULL,
`temps` varchar(10) NOT NULL,
`level` int(11) NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='table qui gère le temps qu''il fait';
Sinon une idée pour les id? (selectionner l'id d'un enregistrement qu'on vient de modifier en une seule requete)
Merci à tous et belle optimisation Sadeq
La dernière version de la fonction
function meteo ()
{
$ndf = 1; //nombre de figures rentrées en array
$figs = array();
//syntaxe level x y
//le rond
$figs[0] = array();
//zone noire
$figs[0][0] = array();
$figs[0][0][0] = 5;
$figs[0][0][1] = 0;
$figs[0][0][2] = 0;
//zone bleue
$figs[0][1] = array();
$figs[0][1][1] = -1;
$figs[0][1][2] = -1;
$figs[0][2] = array();
$figs[0][2][1] = 0;
$figs[0][2][2] = -1;
$figs[0][3] = array();
$figs[0][3][1] = -2;
$figs[0][3][2] = 0;
$figs[0][4] = array();
$figs[0][4][1] = -1;
$figs[0][4][2] = 0;
$figs[0][5] = array();
$figs[0][5][1] = 1;
$figs[0][5][2] = 0;
$figs[0][6] = array();
$figs[0][6][1] = -2;
$figs[0][6][2] = 1;
$figs[0][7] = array();
$figs[0][7][1] = -1;
$figs[0][7][2] = 1;
$figs[0][8] = array();
$figs[0][8][1] = 0;
$figs[0][8][2] = 1;
$figs[0][9] = array();
$figs[0][9][1] = 1;
$figs[0][9][2] = 1;
$figs[0][10] = array();
$figs[0][10][1] = -1;
$figs[0][10][2] = 2;
$figs[0][11] = array();
$figs[0][11][1] = 0;
$figs[0][11][2] = 2;
//zone rouge
$figs[0][12] = array();
$figs[0][12][1] = -1;
$figs[0][12][2] = -2;
$figs[0][13] = array();
$figs[0][13][1] = 0;
$figs[0][13][2] = -2;
$figs[0][14] = array();
$figs[0][14][1] = 1;
$figs[0][14][2] = -1;
$figs[0][15] = array();
$figs[0][15][1] = 2;
$figs[0][15][2] = 0;
$figs[0][16] = array();
$figs[0][16][1] = 2;
$figs[0][16][2] = 1;
$figs[0][17] = array();
$figs[0][17][1] = 1;
$figs[0][17][2] = 2;
$figs[0][18] = array();
$figs[0][18][1] = 0;
$figs[0][18][2] = 3;
$figs[0][19] = array();
$figs[0][19][0] = 3;
$figs[0][19][1] = -1;
$figs[0][19][2] = 3;
$figs[0][20] = array();
$figs[0][20][1] = -2;
$figs[0][20][2] = 2;
$figs[0][21] = array();
$figs[0][21][1] = -3;
$figs[0][21][2] = 1;
$figs[0][22] = array();
$figs[0][22][1] = -3;
$figs[0][22][2] = 0;
$figs[0][23] = array();
$figs[0][23][1] = -2;
$figs[0][23][2] = -1;
//zone jaune
$figs[0][24] = array();
$figs[0][24][1] = -1;
$figs[0][24][2] = -3;
$figs[0][25] = array();
$figs[0][25][1] = 0;
$figs[0][25][2] = -3;
$figs[0][26] = array();
$figs[0][26][1] = 1;
$figs[0][26][2] = -2;
$figs[0][27] = array();
$figs[0][27][1] = 2;
$figs[0][27][2] = -1;
$figs[0][28] = array();
$figs[0][28][1] = 3;
$figs[0][28][2] = 0;
$figs[0][29] = array();
$figs[0][29][1] = 3;
$figs[0][29][2] = 1;
$figs[0][30] = array();
$figs[0][30][1] = 2;
$figs[0][30][2] = 2;
$figs[0][31] = array();
$figs[0][31][1] = 1;
$figs[0][31][2] = 3;
$figs[0][32] = array();
$figs[0][32][1] = 0;
$figs[0][32][2] = 4;
$figs[0][33] = array();
$figs[0][33][1] = -1;
$figs[0][33][2] = 4;
$figs[0][34] = array();
$figs[0][34][1] = -2;
$figs[0][34][2] = 3;
$figs[0][35] = array();
$figs[0][35][1] = -3;
$figs[0][35][2] = 2;
$figs[0][36] = array();
$figs[0][36][1] = -4;
$figs[0][36][2] = 1;
$figs[0][37] = array();
$figs[0][37][1] = -4;
$figs[0][37][2] = 0;
$figs[0][38] = array();
$figs[0][38][1] = -3;
$figs[0][38][2] = -1;
$figs[0][39] = array();
$figs[0][39][1] = -2;
$figs[0][39][2] = -2;
//zone verte
$figs[0][40] = array();
$figs[0][40][1] = -1;
$figs[0][40][2] = -4;
$figs[0][41] = array();
$figs[0][41][1] = 0;
$figs[0][41][2] = -4;
$figs[0][42] = array();
$figs[0][42][1] = 1;
$figs[0][42][2] = -3;
$figs[0][43] = array();
$figs[0][43][1] = 2;
$figs[0][43][2] = -2;
$figs[0][44] = array();
$figs[0][44][1] = 3;
$figs[0][44][2] = -1;
$figs[0][45] = array();
$figs[0][45][1] = 4;
$figs[0][45][2] = 1;
$figs[0][46] = array();
$figs[0][46][1] = 4;
$figs[0][46][2] = 1;
$figs[0][47] = array();
$figs[0][47][1] = 3;
$figs[0][47][2] = 2;
$figs[0][48] = array();
$figs[0][48][1] = 2;
$figs[0][48][2] = 3;
$figs[0][49] = array();
$figs[0][49][1] = 1;
$figs[0][49][2] = 4;
$figs[0][50] = array();
$figs[0][50][1] = 0;
$figs[0][50][2] = 5;
$figs[0][51] = array();
$figs[0][51][1] = -1;
$figs[0][51][2] = 5;
$figs[0][52] = array();
$figs[0][52][1] = -2;
$figs[0][52][2] = 4;
$figs[0][53] = array();
$figs[0][53][1] = -3;
$figs[0][53][2] = 3;
$figs[0][54] = array();
$figs[0][54][1] = -4;
$figs[0][54][2] = 2;
$figs[0][55] = array();
$figs[0][55][1] = -5;
$figs[0][55][2] = 1;
$figs[0][56] = array();
$figs[0][56][1] = -5;
$figs[0][56][2] = 0;
$figs[0][57] = array();
$figs[0][57][1] = -4;
$figs[0][57][2] = -1;
$figs[0][58] = array();
$figs[0][58][1] = -3;
$figs[0][58][2] = -2;
$figs[0][59] = array();
$figs[0][59][1] = -2;
$figs[0][59][2] = -3;
//DEV boucles pour gagner du temps
$car4 = 0;
while($car4 < 10) //zone bleue
{
$car4++;
$figs[0][$car4][0] = 4;
}
$car3 = 11;
while($car3 < 22) // zone rouge
{
$car3++;
$figs[0][$car3][0] = 3;
}
$car2 = 23;
while($car2 < 38) //zone jaune
{
$car2++;
$figs[0][$car2][0] = 2;
}
$car1 = 39;
while($car1 < 59) //zone verte
{
$car1++;
$figs[0][$car1][0] = 1;
}
//SUITE DEV FINIR ZONES
$ndf--;
$sql1 = mysql_query("SELECT count(*) FROM map");
$sql2 = mysql_result($sql1, 0, 0);
$nbact = floor(($sql2 / 60) /1.3 );
$curseur = 0;
$arid = array();
$caid = -1;
while($nbact > $curseur)
{
$rdf = rand(0, $ndf);
$sql3 = mysql_query("SELECT x, y FROM meteo ORDER BY rand() LIMIT 1");
$sql4 = mysql_fetch_array($sql3);
$c2 = -1;
$rtemps = rand(0, 3);
if($rtemps == 0) { $temps = 'brouillard'; }
if($rtemps == 1) { $temps = 'neige'; }
if($rtemps == 2) { $temps = 'pluie'; }
if($rtemps == 3) { $temps = 'pluie'; }
while($c2 < 59)
{
$c2++;
$xf = $sql4['x'] + $figs[$rdf][$c2][1];
$yf = $sql4['y'] + $figs[$rdf][$c2][2];
mysql_query("UPDATE meteo SET temps = '".$temps."', level = '".$figs[$rdf][$c2][0]."' WHERE y = '".$yf."' AND x = '".$xf."'");
$asql1 = mysql_query("SELECT id FROM meteo WHERE y = '".$yf."' AND x = '".$xf."'");
$asql2 = mysql_fetch_array($asql1);
$caid++;
$arid[$caid] = $asql2['id'];
}
$curseur++;
}
$query = "UPDATE meteo SET temps = 'beau', level = '0' WHERE id NOT IN (".implode(",", $arid).")";
mysql_query($query);
mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE temps = 'null'");
}
A+ et bon surf!!!!