Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1264 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Pb avec imbrications de requete select SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb avec imbrications de requete select SQL

n°1654764
choco1984
Posté le 07-12-2007 à 18:17:37  profilanswer
 

Bonjour,
 
je travaille sur de la cartographie en ligne, je dispose de deux tables sql
l'une est une matrice raster d'environ 40.000 enregistrements qui est lié a une table avec les 150 communes. le champs qui permet de lier les deux table est un numéro de commune.
par exemple un pixel a une paire de coordonnée (x,y) et un code de la commune qu'il occupe. dans la table commune j'ai la liste des communes (avec leur code) et un ensemble de variables telles que la population, la surface de foret ...
 
je veux coloré chaque pixel de la matrice en fonction de la variable situé dans la table commune.
 
 

Code :
  1. //la requête SQL qui va cherche la position du pixel et la commune
  2. $sql = 'SELECT * FROM raster';
  3. $req = mysql_query($sql);
  4. while($data = mysql_fetch_assoc($req))
  5.   {
  6.     $insee = $data['CODE'];
  7.     $sql2 = 'SELECT VAR1 FROM lieux WHERE ID ='.$insee;
  8.     $req2 = mysql_query($sql2);
  9.     $donnee = mysql_fetch_assoc($req2);
  10.                 if ($donnee < $long_classe)
  11.                     {
  12.                     $couleurtour = ImageColorAllocate ($im2, 255, 175, 175);
  13.                     ImageSetPixel ($im2, $data['XPOS']*2, $data['YPOS']*2, $couleurtour);
  14.                     ImageSetPixel ($im2, $data['XPOS']*2+1, $data['YPOS']*2, $couleurtour);
  15.                     ImageSetPixel ($im2, $data['XPOS']*2, $data['YPOS']*2+1, $couleurtour);
  16.                     ImageSetPixel ($im2, $data['XPOS']*2+1, $data['YPOS']*2+1, $couleurtour);
  17.                     }
  18.                 if ($donnee > $long_classe)
  19.                     {
  20.                     $couleurtour = ImageColorAllocate ($im2, 255, 100, 100);
  21.                     ImageSetPixel ($im2, $data['XPOS']*2, $data['YPOS']*2, $couleurtour);
  22.                     ImageSetPixel ($im2, $data['XPOS']*2+1, $data['YPOS']*2, $couleurtour);
  23.                     ImageSetPixel ($im2, $data['XPOS']*2, $data['YPOS']*2+1, $couleurtour);
  24.                     ImageSetPixel ($im2, $data['XPOS']*2+1, $data['YPOS']*2+1, $couleurtour);
  25.                     }
  26.   }


 
explication :  
dans la table raster
[CODE] = code commune du pixel
[XPOS] = cordonnee x du pixel
[YPOS] = cordonnee y du pixel
dans la table lieux
[ID] = code commune
[VAR1] = population
variables :
$long_classe = borne arbitraire pour séparer la série population
 
enfin le problème c'est que tous les enregistrements population sont considérés comme =0 lors de la génération de l'image. j'ai alors une belle carte toute rose alors que je devrais avoir quelques communes rouges
si ça vous interresse voila le lien de mon image
http://lesgitesdumarduel.com/graph/raster.php
 

mood
Publicité
Posté le 07-12-2007 à 18:17:37  profilanswer
 

n°1654769
naceroth
Posté le 07-12-2007 à 18:50:43  profilanswer
 

$donnee est un tableau, donc tes tests ne devraient ils pas plutôt être
 

Code :
  1. if ($donnee['VAR1'] < $long_classe)
  2.   {
  3.    ...
  4.   }
  5. if ($donnee['VAR1'] > $long_classe)


 
?

n°1654771
choco1984
Posté le 07-12-2007 à 18:58:19  profilanswer
 

J'ai essayé cette solution mais ça ne donne rien. De plus je lui dit SELCT VAR1 donc apriori pas besoin de $donnee[...].
Mais dans le doute j'ai essayer et toujours rien

n°1654774
naceroth
Posté le 07-12-2007 à 19:07:22  profilanswer
 

choco1984 a écrit :

De plus je lui dit SELCT VAR1 donc apriori pas besoin de $donnee[...].

 

Ah bah si, mysql_fetch_assoc retourne un tableau ou un booléen, à priori ou pas, tu as besoin d'utiliser le résultat comme un tableau.

 

Tu as fait le debug standard (vérifier le contenu de $donnee et $long_classe avant le test via un print_r() ) ?


Message édité par naceroth le 07-12-2007 à 19:08:50

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Pb avec imbrications de requete select SQL

 

Sujets relatifs
Lire a partir de l'ecran en PL/SQL[SQL] SQL_CALC_FOUND_ROWS + FOUND_ROWS() + LIMIT avec MSSQL?
N'afficher que les 3 dernières dates d'une requêtebesoin aide pour requête
trier après une requète (résolu)[Résolu] Une boucle dans une requête SQL?
[Oracle - Débutant] Exporter le résultat d'une requête dans un fichiersupprimer un element avec removechild() selon la valeur dans un select
Requete SELECT COUNT 
Plus de sujets relatifs à : Pb avec imbrications de requete select SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR