login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gegevens uit DB in array

Offline Frederic - 05/04/2005 22:30 (laatste wijziging 05/04/2005 22:31)
Avatar van FredericPHP ver gevorderde Weet iemand waarom dit niet werkt?
  1. <? $hoofdarray = array(
  2. $sql = mysql_query("SELECT * FROM site_database_grootte");
  3. while($rij = mysql_fetch_assoc($sql))
  4. {
  5. $datum = $rij['datum'];
  6. $grootte = $rij['grootte'];
  7.  
  8. $datum => $grootte
  9. }
  10. );?>

Ik krijg
Citaat:
Parse error: parse error, unexpected ';', expecting ')'

Uiteindelijk moet ik iets hebben à la
  1. <? $hoofdarray = array(
  2. "1-1" => 45,
  3. "2-1" => 35,
  4. "3-1" => 42,
  5. "4-1" => 46,
  6. "5-1" => 51,
  7. "6-1" => 49,
  8. "7-1" => 33,
  9. "8-1" => 39,
  10. "9-1" => 40,
  11. "10-1" => 34
  12. ); ?>

4 antwoorden

Gesponsorde links
Offline nemesiskoen - 05/04/2005 22:37 (laatste wijziging 05/04/2005 22:46)
Avatar van nemesiskoen Gouden medaille

PHP expert
anders aanpakken denkik

  1. <?php
  2. $sql = MySQL_query("SELECT * FROM site_database_grootte");
  3. while( $rij = MySQL_fetch_assoc( $sql ) ) {
  4. $hoofdarray[$rij['datum']] = $rij['grootte'];
  5. }
  6. ?>


zoiets misschien???
Offline Frederic - 05/04/2005 22:49 (laatste wijziging 05/04/2005 22:49)
Avatar van Frederic PHP ver gevorderde Hmmm, dan krijg ik
Citaat:
De afbeelding “” kan niet vertoond worden, omdat ze fouten bevat.

Ik gebruik dezelfde code als jou, en dit zit in de database:
  1. id datum grootte
  2. 1 2005-04-05 2
  3. 2 2005-04-05 2.057
  4. 3 2005-04-05 2.057
Offline nemesiskoen - 05/04/2005 23:07
Avatar van nemesiskoen Gouden medaille

PHP expert
welke code gebruik je om de afbeelding te tonen?
Offline Frederic - 05/04/2005 23:12
Avatar van Frederic PHP ver gevorderde
  1. <?php
  2. $titel = "Grootte MySQL";
  3.  
  4. // array op deze manier genereren $hoofdarray = array(x-as => y-as)
  5. // bv:
  6. $sql = MySQL_query("SELECT * FROM site_database_grootte");
  7. while( $rij = mysql_fetch_assoc( $sql ) ) {
  8. $datum = $rij['datum'];
  9. $grootte = $rij['grootte'];
  10. $hoofdarray = array($datum => $grootte);
  11. }
  12. $gebied_breedte = 400; // grootte van de grafiek zelf (zonder randen)
  13. $gebied_hoogte = 200; // hoogte van de grafiek zelf (zonder randen)
  14. $rand_links = 20; // de breedte van de linker rand (hou rekening met de lengte van de waardes die op de y-as komen, in toekomst misschien automatisch)
  15. $rand_rechts = 10; // de breedte van de rechter rand
  16. $rand_onder = 40; // de rand onder de grafiek (hou rekening met de lengte van de waardes die op de x-as komen, in toekomst misschien automatisch)
  17. $rand_boven = 30; // de rand boven (hou rekening met de titel die hier in komt)
  18. $hor_lijnen = 4; // het aantal verdelingen van de y-as
  19. $hor_raster = TRUE; // horizontale lijnen zichtbaar?
  20. $ver_lijnen = 10; // het aantal verdelingen van de x-as
  21. $ver_raster = FALSE; // verticale lijnen zichtbaar?
  22. $grafiek_titel = $titel; // de titel van de grafiek
  23.  
  24. header("Content-type: image/png");
  25.  
  26. if(function_exists("ImageCreateTrueColor"))
  27. {
  28. $plaatje = ImageCreateTrueColor(($gebied_breedte + $rand_rechts + $rand_links), ($gebied_hoogte + $rand_onder + $rand_boven));
  29. }
  30. else
  31. {
  32. $plaatje = ImageCreate(($gebied_breedte + $rand_rechts + $rand_links), ($gebied_hoogte + $rand_onder + $rand_boven));
  33. }
  34.  
  35. $zwart = ImageColorAllocate($plaatje, 000, 000, 000);
  36. $wit = ImageColorAllocate($plaatje, 255, 255, 255);
  37. $grijs = ImageColorAllocate($plaatje, 225, 225, 225);
  38. $lijn = ImageColorAllocate($plaatje, 000, 000, 255); // blauwe grafieklijn
  39.  
  40. imagefill($plaatje,1,1,$wit);
  41. // zwarte rand of niet:
  42. //imagefilledrectangle($plaatje, 1, 1, ($gebied_breedte + $rand_rechts + $rand_links - 2), ($gebied_hoogte + $rand_onder + $rand_boven -2), $wit); //
  43.  
  44.  
  45. imagefilledrectangle($plaatje, ($rand_links + 1), ($rand_boven + 1), ($rand_links + $gebied_breedte - 1), ($rand_boven + $gebied_hoogte -1), $grijs);
  46.  
  47. $hoogste = 1;
  48. foreach($hoofdarray as $key => $value)if($value > $hoogste)$hoogste = $value;
  49.  
  50. $style=array($zwart, $zwart, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT );
  51. imagesetstyle($plaatje,$style);
  52.  
  53. $waarde = 1;
  54. for($y = $rand_boven;$y < ($gebied_hoogte + $rand_boven + 1);$y += ($gebied_hoogte / $hor_lijnen))
  55. {
  56. $align = $rand_links - 3 - strlen(round($hoogste * $waarde)) * 5;
  57. imagestring($plaatje, 2, $align, $y - 7 , round($hoogste * $waarde), $zwart);
  58. if($hor_raster)imageline($plaatje, $rand_links, $y, ($rand_links + $gebied_breedte), $y, IMG_COLOR_STYLED);
  59. $waarde -= (1 / $hor_lijnen);
  60. }
  61. $aantal = count($hoofdarray);
  62. $interval = $gebied_breedte / ($aantal - 1);
  63. $yinterval = $gebied_hoogte / $hoogste;
  64. $x = $rand_links;
  65. $coords = array();
  66. $ticker = 0;
  67. $numdates = round($aantal / $ver_lijnen);
  68. if($numdates < 1)$numdates = 1;
  69. foreach($hoofdarray as $xas => $yas)
  70. {
  71.  
  72. $coords[$ticker]["x"] = round($x);
  73. $coords[$ticker]["y"] = ($rand_boven + $gebied_hoogte) - (round($yas * $yinterval));
  74.  
  75. if($ticker / $numdates == round($ticker / $numdates) || $ticker == 0 || $ticker == $aantal-1)
  76. {
  77. $align = ($gebied_hoogte + $rand_boven) + (strlen($xas) * 5) + 5;
  78. imagestringup($plaatje, 2 , round($x) - 7 , $align, $xas ,$zwart);
  79. if($ver_raster)imageline($plaatje, round($x) , $rand_boven , round($x) , ($rand_boven + $gebied_hoogte), IMG_COLOR_STYLED);
  80. }
  81.  
  82. $x += $interval;
  83. $ticker++;
  84. }
  85. for($a = 0;$a < count($coords)-1;$a++)
  86. {
  87. imagesmoothline($plaatje, $coords[$a]["x"] , $coords[$a]["y"] , $coords[$a+1]["x"] , $coords[$a+1]["y"], $lijn);
  88. }
  89.  
  90. imagerectangle($plaatje, $rand_links, $rand_boven, ($rand_links + $gebied_breedte), ($rand_boven + $gebied_hoogte), $zwart);
  91.  
  92. imagestring($plaatje, 4 , ((($rand_links + $rand_rechts + $gebied_breedte) / 2) - ((strlen($grafiek_titel) / 2) * 8)) , ($rand_boven / 2) - 8 , $grafiek_titel , $zwart);
  93.  
  94. ImagePNG($plaatje);
  95. ImageDestroy($plaatje);
  96.  
  97.  
  98.  
  99. // functie voor de anti-aliasing van de grafieklijn (van php.net)
  100. function imagesmoothline ( $image , $x1 , $y1 , $x2 , $y2 , $color )
  101. {
  102. $colors = imagecolorsforindex ( $image , $color );
  103. if ( $x1 == $x2 )
  104. {
  105. imageline ( $image , $x1 , $y1 , $x2 , $y2 , $color ); // Vertical line
  106. }
  107. else
  108. {
  109. $m = ( $y2 - $y1 ) / ( $x2 - $x1 );
  110. $b = $y1 - $m * $x1;
  111. if ( abs ( $m ) <= 1 )
  112. {
  113. $x = min ( $x1 , $x2 );
  114. $endx = max ( $x1 , $x2 );
  115. while ( $x <= $endx )
  116. {
  117. $y = $m * $x + $b;
  118. $y == floor ( $y ) ? $ya = 1 : $ya = $y - floor ( $y );
  119. $yb = ceil ( $y ) - $y;
  120. $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , $x , floor ( $y ) ) );
  121. $tempcolors['red'] = $tempcolors['red'] * $ya + $colors['red'] * $yb;
  122. $tempcolors['green'] = $tempcolors['green'] * $ya + $colors['green'] * $yb;
  123. $tempcolors['blue'] = $tempcolors['blue'] * $ya + $colors['blue'] * $yb;
  124. if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] );
  125. imagesetpixel ( $image , $x , floor ( $y ) , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) );
  126. $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , $x , ceil ( $y ) ) );
  127. $tempcolors['red'] = $tempcolors['red'] * $yb + $colors['red'] * $ya;
  128. $tempcolors['green'] = $tempcolors['green'] * $yb + $colors['green'] * $ya;
  129. $tempcolors['blue'] = $tempcolors['blue'] * $yb + $colors['blue'] * $ya;
  130. if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] );
  131. imagesetpixel ( $image , $x , ceil ( $y ) , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) );
  132. $x ++;
  133. }
  134. }
  135. else
  136. {
  137. $y = min ( $y1 , $y2 );
  138. $endy = max ( $y1 , $y2 );
  139. while ( $y <= $endy )
  140. {
  141. $x = ( $y - $b ) / $m;
  142. $x == floor ( $x ) ? $xa = 1 : $xa = $x - floor ( $x );
  143. $xb = ceil ( $x ) - $x;
  144. $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , floor ( $x ) , $y ) );
  145. $tempcolors['red'] = $tempcolors['red'] * $xa + $colors['red'] * $xb;
  146. $tempcolors['green'] = $tempcolors['green'] * $xa + $colors['green'] * $xb;
  147. $tempcolors['blue'] = $tempcolors['blue'] * $xa + $colors['blue'] * $xb;
  148. if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] );
  149. imagesetpixel ( $image , floor ( $x ) , $y , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) );
  150. $tempcolors = imagecolorsforindex ( $image , imagecolorat ( $image , ceil ( $x ) , $y ) );
  151. $tempcolors['red'] = $tempcolors['red'] * $xb + $colors['red'] * $xa;
  152. $tempcolors['green'] = $tempcolors['green'] * $xb + $colors['green'] * $xa;
  153. $tempcolors['blue'] = $tempcolors['blue'] * $xb + $colors['blue'] * $xa;
  154. if ( imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) == -1 ) imagecolorallocate ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] );
  155. imagesetpixel ( $image , ceil ( $x ) , $y , imagecolorexact ( $image , $tempcolors['red'] , $tempcolors['green'] , $tempcolors['blue'] ) );
  156. $y ++;
  157. }
  158. }
  159. }
  160. }
  161.  
  162. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.231s