Page 1 sur 1

Mysql : problème de creation d'un polygone lors d'une requèt

Posté : 07 mars 2012, 21:15
par ploupy
Bonjour voila mon problème.
Je souhaite faire un polygone dynamiquement.

Pas de problème, suffit que je fasse la fonction :

Code : Tout sélectionner

<? ImagePolygon ($im, $points, $num_points, $col);?>
Le problème est que mes variables $points sont appelés à l'aide d'une requête. (de type SELECT),
les points sont une liste de champs, que je souhaite assembler pour faire un polygone.
(mes points sont sur ma base de donné)

Voila je ne comprend pas comment récuperer plusieurs variables dans un select.

Lorsque je veux faire un cercle dynamique, aucun soucis car il utilise une variable par fonction, avec une requete je peux donc tracer les cercles pour chaques champs que me liste la requete

MAIS la fonction polygone utilise plusieurs variables, donc je ne sais pas du tout comment faire. Il me semble qu'il fait faire une requete dans un tableau mais je ne suis pas sûr, merci pour votre aide

Re: Mysql : problème de creation d'un polygone lors d'une re

Posté : 07 mars 2012, 22:46
par ploupy
par exemple
$sql = "
SELECT  `polygone1`
FROM  `FORMES`
";
$result = mysql_query($sql) or die ("probleme de generation"); 
while ($donnee = mysql_fetch_array($result))
{

$p1 = $donnee["polygone1"];



ImagePolygon ($im, $p1, 4_points, $col);
}




Pour chaque enregistrements de mon champs je ne peux insérer qu'une variable,

comment faire pour recuper mes 4 valeurs d'enregistrement dans une meme boucle ?


j'espere que je suis plus claire ? merci

Re: Mysql : problème de creation d'un polygone lors d'une re

Posté : 08 mars 2012, 10:51
par sirakawa
<? ImagePolygon ($im, $points, $num_points, $col);?>
$im : quelles valeurs possibles?
$points : un entier?, un réel, une paire d'entiers ou de réels (style coordonnées du/des points? Un caractère (Le nom du point)?
$num_points : ???
$col : ???
A priori, j'aurais stocké en BDD:
nom_de_fig : text (carre_1, cercle_392...)
type de figure (polygone, ovale (comprenant le cercle puisque le cercle est une ovale dont les deux foyers sont confondus)
et on voit à l'évidence que les informations à stocker sont différentes suivant le type de figure:
segment de droite : coordonnées des deux extrémités....
triangles :
quadrilatères : coordonnées des quatre sommets
cercles et ovales : coordonnées des deux foyers, et longueur du rayon
polygones réguliers( non croisés) : je crois qu'il suffit des coordonnées du centre, du rayon, et du nombre de sommets,
chaque coordonnée comportant deux valeurs exemple
x=12,35 y =131,9 on peut les loger dans un tableau PHP:
t[0]['x'] = 12,35; // coordonnées du foyer 1, si ovale. du centre si cercle. du premier sommet si quadrilatère
t[0]['y'] = 131.9;
t[1]['x'] // coordonnées du foyer 2, si ovale. du centre si cercle. du deuxième sommet si quadrilatère
t[1]['y']
t[2]['x'] // dès lors ce sont les coordonnées des sommets successifs mises à 0 si inutiles

Ce tableau, pour le stocker en BDD, on va lui appliquer deux fois la fonction implode, une fois sur chaque ligne, donnant un tableau de paires, une fois sur ce deuxième tableau
<?PHP
$t = array(); // le tableau initial de points
for ($i=0; $i<6; $i++)
{
	$t[$i]['x'] = "X".$i;
	$t[$i]['y'] = "Y".$i;
}
print_r($t);
$t_champ = array(); // le tableau intermédiaire
foreach($t as $t_ligne)
{
	/*implosion avec un séparateur multiple parce que, partant d'un tableau à 2
	dimensions, on a besoin de deux séparateurs distincts et que je trouve commode 
	de les hiérarchiser par le nombre de points /::/ à esploser en second*/	
	$ligne = implode("/::/", $t_ligne);
	$t_champ[]= $ligne;
}
$champ = implode ("/:/", $t_champ); // la chaine à stocker en BDD
print"<br>$champ";
?>
A l'utilisation, on explode ("/:/"..) d'abord, avant de s'en servir, puis chaque ligne du tableau résultat par explode("/::/..) au moment de s('en servir

Re: Mysql : problème de creation d'un polygone lors d'une re

Posté : 08 mars 2012, 16:04
par ploupy
A oui rassembler tous les points dans une seule variable, je n'y avait pas penser.

Je vais étudier tes fonctions, merci