Graphique à partir de coordonnées stockées dans une bdd MYSQL

Résolu
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 - 30 mai 2010 à 23:24
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 7 juin 2010 à 08:58
Alors j'ai un petit soucis de conception avec un graphique.

En gros j'ai des tas de coordonnées (X, Y) et j'aimerai les placer sur un repère orthonormé de façon automatique (je veux pas passer manuellement par excel).
En gros pour chaque point défini par les coordonnées X ey Y de la bdd j'aimerai qu'un petit carré (une image) s'affiche sur un repère orthonormé.

Est-ce qu'il y a une fonction php pour cela ?

Pouvez vous m'aiguiller, j'ai du mal à imaginer rien que la conception de la map :p



Bonne journée à tous et merci pour le temps que vous avez passé à me lire =)

30 réponses

monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 13:38
Je test tout ça et je te tiens au courant.

Merci beaucoup encore une fois ^^
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 13:40
Ah oUi j'ajoute que pour

data.addRows(<?php echo mysql_num_rows($recup2);?>);

il faut mettre à la valeur retournée sinon ça ne marche pas, c'est parce que les coordonnées commencent à 0 enfin je me comprends ^^

Bonne journée à tous =)
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 13:59
Ne pas tenir compte du message précédent c'est une connerie.

C'était dans le cadre du if.

Là avec les dernières modifications le tableau ne s'affiche pas c'est certainement parce que $I n'est plus définie comme il l'était auparavant dans les parenthèses de for().
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 14:13
J'en suis donc arrivé à ça :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" media="screen" type="text/css" href="css/style.css" />
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {

        var data = new google.visualization.DataTable();
        data.addColumn('number', 'Abscisses');
        data.addColumn('number', 'Ordonnées');
<?php 
include 'include/bdd.php';
$recup2 = mysql_query("SELECT posx,posy FROM elfik_user WHERE user_rank='1'") or die(mysql_error());
$num_row = mysql_num_rows($recup2);?>
data.addRows(<?php echo mysql_num_rows($recup2);?>);
<?php echo $posx;
for($I=0;$I<=$num_row - 1;$I++) 
{ 
while($fetch2 = mysql_fetch_assoc($recup2))
{

?>
data.setValue(<?php echo $I;?>, 0, <?php echo $fetch2['posx'];?>);
data.setValue(<?php echo $I;?>, 1, <?php echo $fetch2['posy'];?>);
<?php
}
};

?>
       
        var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
        chart.draw(data, {width: 1300, height: 1000,
                          title: 'carte du monde',
                          hAxis: {title: 'Abscisses', minValue: -200, maxValue: 200},
                          vAxis: {title: 'Ordonnées', minValue: -200, maxValue: 200},
                          legend: 'none',
  pointSize : '3'
                         });
      }
    </script>
  </head>

  
   <SCRIPT LANGUAGE="JavaScript" SRC="script/menu.js"></SCRIPT>
    


  
</html>


Le problème c'est que je n'ai juste qu'une valeur qui s'affiche dans mon graphique alors qu'il devrait y en avoir deux je vois pas trop où est le problème.

En tout cas là c'est vraiment plus très loin :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 15:10
En fait faudrait agir dans la même logique que lorsqu'on désire afficher dans un tableau l'ensemble des résultats d'une requête. Mais bon vu mon niveau en php j'ai du mal à le concevoir.
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 17:52
A mon avis le problème viens du fait que lorsqu'on fait :

data.setValue(<?php echo $I;?>, 0, <?php echo $fetch2['posx'];?>);
data.setValue(<?php echo $I;?>, 1, <?php echo $fetch2['posy'];?>);


les echo $fetch2['... renvoient directement toutes les valeurs de la table successivement sans envoyer la première valeur pour $I = 0, puis la deuxième pour $I = 1 etc...
Et, par la suite la library n'interprète que la première ligne renvoyée.


Enfin je pense que ça se passe comme ça :)
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 18:34
Je crois que je vais passer sous artichow ça m'a l'air mieux documenté, tout aussi gratuit, développé par des français avec un forum.


Sauf si tu trouves le problème Shivan.

Bien sur je vous tiens au courant du code que j'aurai développé :p
0
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 3
5 juin 2010 à 22:55
tu vires ton for($I...)

tu initialises $I avant le while à 0 ou 1 je sais plus trop, à tester !
Dans le while, avant le "};" de la fin tu mets "$I++;"

Pour info, ton echo $posx après le addrows ne sert à rien (et peut même être source d'erreurs, puis qu'il n'est pas initialisé !

Je crois que ca devrait marcher comme ca.

"la vitesse de la lumière est supérieure à celle du son, c'est pourquoi un imbécile parait intelligent jusqu'a ce qu'il parle !!"
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
5 juin 2010 à 23:20
Je vais tester, j'arrive à faire fonctionner artichow.

Le echo servait à tester si ma requête était correcte j'ai oublié De l'enlever...

Désolé :p
0
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 3
7 juin 2010 à 08:58
Tu peux virer "$I<=$num_row - 1;"
ca sert à rien !

"la vitesse de la lumière est supérieure à celle du son, c'est pourquoi un imbécile parait intelligent jusqu'a ce qu'il parle !!"
0
Rejoignez-nous