Graphique à partir de coordonnées stockées dans une bdd MYSQL [Résolu]

Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
- - Dernière réponse : 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 =)
Afficher la suite 

10/30 réponses

Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
Je test tout ça et je te tiens au courant.

Merci beaucoup encore une fois ^^
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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 =)
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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().
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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 :)
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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.
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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 :)
Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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
Commenter la réponse de monoski
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
2
0
Merci
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 !!"
Commenter la réponse de Shivan0910
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
0
Merci
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
Commenter la réponse de monoski
Messages postés
149
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2010
2
0
Merci
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 !!"
Commenter la réponse de Shivan0910