Jump to content


Photo

Sql and PHP+GD


  • Please log in to reply
4 replies to this topic

#1 Tatara

Tatara
  • Members
  • PipPip
  • Member
  • 12 posts

Posted 14 August 2006 - 12:57 AM

I want to create a script that creates an image on the fly based on one $HTTP_GET_VARS and two or three sql commands

this is the base for what i want but instead of using the http_get_vars function i want to call the data from a database the only HTTP_GET_VARS i want is a 'user'
<?php

$item = $HTTP_GET_VARS['item'];
$have = $HTTP_GET_VARS['have'];
$need = $HTTP_GET_VARS['need'];
$height = 40;
$width = 116;
$fontsize = 6;
$frac = $have/$need;
$pct = 100 * $frac;

$img = imagecreate($width,$height);
$red = imagecolorallocate($img,255,0,0);
$black = imagecolorallocate($img,0,0,0);
$white = imagecolorallocate($img,255,255,255);
$bg = imageCreateFromPNG ('bg.png');
$bar =imageCreateFromPNG ('fill.png');
imageSetTile ($img, $bg);
imageFilledRectangle ($img, 0, 0, 116, 40, IMG_COLOR_TILED);
imageSetTile ($img, $bar);
ImageFilledRectangle($img, 7, 22, (114 * $frac), 34, IMG_COLOR_TILED);

$font = '04B_09__.ttf';
$text1 = "Questing For";
$text2 = $item;
$text3 = $have . "/" . $need;
$textwidth1 = floor(imagefontwidth($font) * strlen($text1));
$textleft1 = (($width - $textwidth1) / 2) + 12;
$textwidth2 = floor(imagefontwidth($font) * strlen($text2));
$textleft2 = (($width - $textwidth2) / 2) + 12;
imagettftext($img, $fontsize, 0, $textleft1, 8, $white, $font, $text1);
imagettftext($img, $fontsize, 0, $textleft2, 19, $white, $font, $text2);
imagettftext($img, 6, 0, 46, 32, $black, $font, $text3);

header('content-type: image/png');
imagepng($img);
    
?>
Can anybody help

#2 AndyB

AndyB
  • Staff Alumni
  • Advanced Member
  • 5,465 posts
  • LocationToronto

Posted 14 August 2006 - 03:41 AM

... then include a connection to the database and execute whatever query you need to retrieve whatever information you want in the same script.
Legend has it that reading the manual never killed anyone.
My site

#3 Tatara

Tatara
  • Members
  • PipPip
  • Member
  • 12 posts

Posted 14 August 2006 - 12:56 PM

Ok ill comment what i want in the coding. I know how to code the connection and the query but i do not know how to add it to the variable

<?php

//add $user = $HTTP_GET_VARS['user'];
//used to find which user to query for in the database

//change these to get the value from the results of the query
$item = $HTTP_GET_VARS['item'];
$have = $HTTP_GET_VARS['have'];
$need = $HTTP_GET_VARS['need'];
$height = 40;
$width = 116;
$fontsize = 6;
$frac = $have/$need;
$pct = 100 * $frac;

$img = imagecreate($width,$height);
$red = imagecolorallocate($img,255,0,0);
$black = imagecolorallocate($img,0,0,0);
$white = imagecolorallocate($img,255,255,255);
$bg = imageCreateFromPNG ('bg.png');
$bar =imageCreateFromPNG ('fill.png');
imageSetTile ($img, $bg);
imageFilledRectangle ($img, 0, 0, 116, 40, IMG_COLOR_TILED);
imageSetTile ($img, $bar);
ImageFilledRectangle($img, 7, 22, (114 * $frac), 34, IMG_COLOR_TILED);

$font = '04B_09__.ttf';
$text1 = "Questing For";
$text2 = $item;
$text3 = $have . "/" . $need;
$textwidth1 = floor(imagefontwidth($font) * strlen($text1));
$textleft1 = (($width - $textwidth1) / 2) + 12;
$textwidth2 = floor(imagefontwidth($font) * strlen($text2));
$textleft2 = (($width - $textwidth2) / 2) + 12;
imagettftext($img, $fontsize, 0, $textleft1, 8, $white, $font, $text1);
imagettftext($img, $fontsize, 0, $textleft2, 19, $white, $font, $text2);
imagettftext($img, 6, 0, 46, 32, $black, $font, $text3);

header('content-type: image/png');
imagepng($img);
    
?>


#4 Tatara

Tatara
  • Members
  • PipPip
  • Member
  • 12 posts

Posted 14 August 2006 - 01:44 PM

bump

#5 HeyRay2

HeyRay2
  • Members
  • PipPipPip
  • Advanced Member
  • 223 posts

Posted 14 August 2006 - 02:08 PM

<?php

//used to find which user to query for in the database
$user = mysql_real_escape_string(trim($HTTP_GET_VARS['user']));

// Query
$sql = "SELECT item, have, need FROM your_db_table WHERE user = '$user'";

// Run Query
$result = mysql_query($sql) or die("Error retrieving user info: ".mysql_error());

// Grab the user results
while( $row = mysql_fetch_array($result) ){
   $item = $row['item'];
   $have = $row['have'];
   $need = $row['need'];
}

// You can get rid of these
//change these to get the value from the results of the query
//$item = $HTTP_GET_VARS['item'];
//$have = $HTTP_GET_VARS['have'];
//$need = $HTTP_GET_VARS['need'];
?>





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users