salut
mais si c'est egale au coordonnées!!!
ta pas mis de else !!!
!= signifie différents donc si la case est vide on insert les info du perso sinon on passe pas besoin de else puisque en faite on le gere dans la boucle
un petit break après le INSERT ne serais pas mieu? parceque là tu insere a chaque coordonnées vides des la carte, hors on ne veu le faire qu'une fois pour un joueur non?
Sinon une petite requete qui te sort un enregistrement au hasard avec posx='' et posy='':
Code PHP :
<?php
$requete="SELECT * FROM membres WHERE posx='' and posy='' ORDER BY rand() LIMIT 0,1;";
Code PHP :
<?php
$coordVide = mysql_query("SELECT posx, posy FROM membres");
$vide = mysql_fetch_array($coordVide);
$x = mt_rand(1,500);
$y = mt_rand(1,500); //suivant la taille de ta carte en carré
if ($x != $vide['x'] && $y != $vide['y'])
{
mysql_query("INSERT ...... WHERE pseudo='".$pseudo."'");
}
Petite mise a jour...Pour un seul personnage
heu ca va peut etre paraitre idiot mais c'est pas UPDATE+RAND qu'il faut utiliser dans ce cas la ?
J'ai un système de ronde pour pnj et ca donne un truc du genre
UPDATE monstre SET x = x_o-$ronde/2+$ronde*RAND, y = y_o-$ronde/2+$ronde*RAND
voilà pour dire que le select est inutile quand on veut modifier/insérer des données
edit: j'ai retrouvé mon script, les monstres font une ronde de rayon `rayon_ronde` autour du point `x_origine`, `y_origine` et le tout en une seule requête (qques ms pour plusieurs milliers de monstres) :
Code :
$bd1->execRequete("UPDATE `monstre_emplacement` SET `x_actuel` = `x_origine_ronde`-`rayon_ronde`+(2*`rayon_ronde`*RAND()), `y_actuel` = `y_origine_ronde`-`rayon_ronde`+(2*`rayon_ronde`*RAND()) WHERE 1");
Merci à vous.
>
phpgamer il est préférable de faire sa sur des données qui existent ^^
Code PHP :
<?php
$coordVide = mysql_query("SELECT posx, posy FROM membres");
$vide = mysql_fetch_array($coordVide);
$x = mt_rand(1,250);
$y = mt_rand(1,250);
if ($x != $vide['posx'] && $y != $vide['posy'])
{
mysql_query("UPDATE membres SET posx='".$x."', posy='".$y."' WHERE pseudo='".$pseudo."'");
}
Car $vide['x'] et vide['y'] n'existent pas
, je sais je chipotte mais bon ^^ Merci