PHP создать код для вставки из базы данных - PullRequest
1 голос
/ 23 мая 2011

Я искал Google и Stackoverflow, но не смог найти ответ. Вероятно, это потому, что я ищу неправильный вопрос. Без правильного вопроса трудно получить правильные ответы. Поэтому я надеюсь, что кто-нибудь сможет мне помочь.

Я создал 20 лучших списков, в которых люди могут оценивать свой любимый веб-сайт (я знаю, что это не тот оригинал, но я делаю это для изучения php)

Веб-сайты могут быть добавлены в базу данных и отсортированы по голосам. Каждый сайт имеет свой уникальный идентификатор в базе данных, имя и должность.

Что я не могу понять, так это как сделать следующее.

Рядом с отображаемым списком отображается кнопка получения кода. Эта кнопка создаст код для файла изображения, который можно отобразить на любом веб-сайте. Например:

<img src="http://www.example.com/counter.php?id=47"/>

или даже лучше

<img src="http://www.example.com/47.gif"/>

Для этого мне нужно сделать php-код, который может взять идентификатор и превратить его в красивый файл изображения, и я застрял. Я видел, как это делают твиттер, feedburner, Technorati и более 100 других веб-сайтов, но я не могу понять, как это сделать.

Я нашел этот код, который подделывает feedburner, но я не могу понять, как превратить его в то, что мне нужно.

<?php
//Send a generated image to the browser
create_image();
exit();
function create_image(){
//Create the image resource
$image = imagecreatefromgif('image.gif');
//Create text color
$brown = ImageColorAllocate($image, 0, 0, 0);
//Check for the get parameters
if (isset($_GET['count']) && is_numeric($_GET['count']))
$rank = $_GET['count'];
else
$rank = 20;

// Some Alignment Calculations
$bbox = imagettfbbox(8.5, 1,'verdana.ttf', $rank);
$xcorr = 0 + $bbox[2];    $xcorr = 31 - $xcorr;
//Add the number in brown color to the image
imagettftext($image,8.5,0,$xcorr,16,$brown,'verdana.ttf',$rank);
//Tell the browser what kind of file is come in
header("Content-Type: image/gif");
imagegif($image);
//Free up resources
ImageDestroy($image);}?>

На основании www.mygeekpal.com/how-to-fake-your-feedburner-subscribers/

Используя приведенный выше код и присвоив ему имя counter.php, я могу получить позицию из базы данных и создать

<img src='http://www.example.com/counter.php?count=".$array ['position']."' />

Это берет положение веб-сайта из базы данных ($array уже был сделан для извлечения) и создает изображение с позицией nr.

Работает нормально, но как только положение меняется в зависимости от рейтинга пользователя, изображение не будет отображать правильные данные.

Я надеюсь, что кто-то может помочь. Спасибо.

Summery

В основном то, что я пытаюсь сделать, это то, что покажет самые последние данные, основанные на рейтинге веб-сайта. Точно так же, как отображение количества подписчиков в твиттере, например, http://twittercounter.com/counter/?username=labnol или подписчиков feedburner на http://feeds.feedburner.com/~fc/labnol Оба изображения представляют число, основанное на информации в базе данных. Но я хочу создать свой собственный имидж, основываясь на рейтинге сайта в базе данных.

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Это то, что у меня есть (я не могу редактировать этот вопрос с этого компьютера из-за разных файлов cookie).

Это основано на помощи от

Как получить данные из базы данных и отобразить их в PHP?

благодаря https://stackoverflow.com/users/353790/robertpitt

Кажется, это работает

<?php
//Connect to DB
$db = mysql_connect("localhst","user","pass") or die("Database Error");
mysql_select_db("db_name",$db);

//Get ID from request
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;

//Check id is valid
if($id > 0)
{
//Query the DB
$resource = mysql_query("SELECT * FROM domains WHERE id = " . $id);
if($resource === false)
{
    die("Database Error");
}

if(mysql_num_rows($resource) == 0)
{
    die("No User Exists");
}

$user = mysql_fetch_assoc($resource);
}

$img_number = imagecreate(110,24);
$image = imagecreatefromgif('image.gif');
$backcolor = imagecolorallocate($img_number,254,46,212);
$textcolor = imagecolorallocate($image, 0, 0, 0);

imagefill($image,0,0,$backcolor);
$number = $user['position'];
Imagestring($image,9,26,4,$number,$textcolor);
header("Content-Type: image/gif");
imagegif($image);
ImageDestroy($image);
?>
0 голосов
/ 23 мая 2011

Глядя на ваш код, он должен обновляться при каждой перезагрузке страницы.Очистите кеш браузера.

Если это не удастся, я бы проверил, откуда он получает данные Get ['count'], которые, как я предполагаю, является номером ранга сайта.

Можете ли вы проверитьчто данные Get ['Count'] обновляются, как и должно быть?

Я не уверен, что использование массива в URL - хорошая идея, почему бы не использовать сеансы? Эта ссылка может представлять интерес.

Извините, я не помог вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...