数据库中的名称在图像中不起作用

时间:2011-09-17 17:08:16

标签: php mysql database image gd

$ query =“SELECT                         *                     从                         udowers         “;

    $mysqlquery = mysql_query($query);

/* IMAGE CREATION */
    $lines = mysql_num_rows($mysqlquery);
    // Create a image
        $im = imagecreate(400, 12 * $lines);

    // Set colors
        $background = imagecolorallocate($im, 255, 255, 255);
        $textcolor = imagecolorallocate($im, 255, 0, 0);

/* END IMAGE CREATION */

    if($mysqlquery){
        while($row = mysql_fetch_assoc($mysqlquery)){
           imagestring($im, 3, 5,  $height += $lines * 12, $row['udower'], $textcolor);
        }
    }
    else
    {
        imagestring($im, 3, 5, 5, 'MySQL Error', $textcolor);
    }

    /* IMAGE CREATION */

    // Output the image
        header('Content-type: image/png');

    // Show the image
        imagepng($im);
        imagedestroy($im);


    /* END IMAGE CREATION */

我试图从表udower获取列udowers上的所有名称,但这不起作用。它根本不显示任何内容。你能帮帮我吗?

1 个答案:

答案 0 :(得分:4)

在这一行

$lines = count(mysql_fetch_assoc($mysqlquery));

您将指针放在结果的末尾。因此,在while循环内部,它不会再获取任何结果。

我认为您正在寻找该行返回的行数,因此您应该这样做:

$lines = mysql_num_rows($mysqlquery);

此外,该行始终相同,因为您始终12 * $lines。您正在创建变量$height = 12 * $lines;,但您没有使用它。

创建该变量时,应将其分配给0,如下所示:

$height = 0;

然后,当您将字符串添加到图像时,您应该执行以下操作:

imagestring($im, 3, 5, $height += 12, $row['udower'], $textcolor);

现在您已将高度更改为0,您还必须调整图像高度:

$im = imagecreate(400, 12 * $lines);