voilà ma réponse... la requête d'insertion des planetes... qui s'en sort avec en tout 800 requetes ^^
Code PHP :
<?php
/**
* Positionnement des planetes
*/
function position_all_planete_taille()
{
/**
* on purge un éventuel existant.
*/
$contenu="DELETE FROM `tbl_planete_tmp`";
$res = $this->db->query($contenu);
$contenu="DELETE FROM `tbl_planete_tmp2`";
$res = $this->db->query($contenu);
/**
* on va remplir une table avec les planetes non candidates
*/
$contenu="INSERT INTO tbl_planete_tmp2 (x, y) SELECT DISTINCT `x` , `y` FROM `tbl_planete_ref` , `tbl_planete` WHERE `tbl_planete`.`galaxie` = ".$this->galaxie." AND ( `tbl_planete_ref`.`x` - `tbl_planete`.`coordonnee_x` ) * ( `tbl_planete_ref`.`x` - `tbl_planete`.`coordonnee_x` ) + ( `tbl_planete_ref`.`y` - `tbl_planete`.`coordonnee_y` ) * ( `tbl_planete_ref`.`y` - `tbl_planete`.`coordonnee_y` ) <= ( `tbl_planete`.`taille` + ".$this->taille." ) * ( `tbl_planete`.`taille` + ".$this->taille." ) ";
echo "<br>requete de remplissage de la table TMP<br>".$contenu."<br>";
$res = $this->db->query($contenu);
$this->nb_requete=$this->nb_requete+1;
/**
* on va en déduire les planètes candidates
*/
$contenu="INSERT INTO `tbl_planete_tmp` (coordonnee_x, coordonnee_y) SELECT x, y FROM `tbl_planete_ref` WHERE NOT EXISTS ( SELECT x, y FROM `tbl_planete_tmp2` WHERE tbl_planete_ref.x = tbl_planete_tmp2.x AND tbl_planete_ref.y = tbl_planete_tmp2.y ) AND tbl_planete_ref.x > ".$this->taille." AND tbl_planete_ref.x < (99 - ".$this->taille.") AND tbl_planete_ref.y > ".$this->taille." AND tbl_planete_ref.y < (99 - ".$this->taille.") ";
echo "<br>requete de remplissage de la table TMP<br>".$contenu."<br>";
$res = $this->db->query($contenu);
$this->nb_requete=$this->nb_requete+1;
/**
* on va prendre la première valeur de la table de manière bouclée et continuer tant qu'il reste des valeurs en table'
*/
$contenu="SELECT coordonnee_x, coordonnee_y FROM tbl_planete_tmp LIMIT 0 , 1";
echo "requete d'extraction d'une valeur de la table TMP de la table TMP<br>".$contenu."<br>";
$extraction = $this->db->query($contenu);
$this->nb_requete=$this->nb_requete+1;
echo "la requete a retourné ".$this->db->sql_num_res[$extraction]." resultats<br>";
while ($this->db->sql_num_res[$extraction] != "0")
{
$table = $this->db->getObject($extraction);
$this->coordonnee_x=$table->coordonnee_x;
$this->coordonnee_y=$table->coordonnee_y;
$this->define_type_planete();
$this->define_peuplade_planete();
$this->insert_planete();
$contenu="DELETE FROM `tbl_planete_tmp` WHERE (`coordonnee_x` - ".$table->coordonnee_x.") * ( `coordonnee_x` - ".$table->coordonnee_x." ) + ( `coordonnee_y` - ".$table->coordonnee_y." ) * ( `coordonnee_y` - ".$table->coordonnee_y." ) <= ( 4* ".$this->taille." * ".$this->taille." ) ";
echo "requete de purge des valeurs en doublon de la table TMP<br>".$contenu."<br>";
$res = $this->db->query($contenu);
$this->nb_requete=$this->nb_requete+1;
$contenu="SELECT coordonnee_x, coordonnee_y FROM tbl_planete_tmp LIMIT 0 , 1";
echo "requete d'extraction d'une valeur de la table TMP de la table TMP<br>".$contenu."<br>";
$extraction = $this->db->query($contenu);
echo "la requete a retourné ".$this->db->sql_num_res[$extraction]." resultats<br>";
$this->nb_requete=$this->nb_requete+1;
}
}
Non je ne suis pas un bourrin.......