PHP,MySQL:从数据库中检索图像url字符串时出现问题

时间:2010-12-27 01:53:34

标签: php mysql html arrays

我已将图像信息存储在我的mysql数据库中,如下所示......

id, int(10), PRIMARY KEY
title, varchar(255), utf8_unicode_ci
url, varchar(255), utf8_unicode_ci       example: http://www.blahblah.com/blahblah.png
caption, varchar(255), utf8_unicode_ci
width, int(10)
height, int(10)
entry_id, int(10), FOREIGN KEY

我正试图通过执行以下操作来抓取所有图像中的网址...

<?php

include('connectdb.php');
include_once('functions.php');
include_once('class/class.Image.php');

// get all images for Entry
$imgArray = array();
$imgArray = getEntryImages( 3 );
$imgArray = getImageUrls ( $imgArray );

foreach( $imgArray as $img )
{
    echo $img . ', ';
}

?>

这是我得到的输出,以及getEntryImages()&amp;的代码。下面的getImageUrls()......

输出:5,5,M,M,h,h,T,T,4,4,3,3,3,3,

function getEntryImages ( $entryID )
{
    $imageArray = array();

    $result = mysql_query( "SELECT * FROM images WHERE entry_id = ".$entryID."" ) or die();
    $row = mysql_fetch_array( $result );

    foreach ( $row as $image )
    {
        $temp_image = new Image ( $image['id'], $image['title'], $image['url'],
                                  $image['caption'], $image['width'], $image['height'],
                                  $image['entry_id'] );

        array_push( $imageArray, $temp_image );
    }

    return $imageArray;
}

function getImageUrls( $imgArray )
{
    $imageUrls = array();

    foreach ( $imgArray as $image )
    {
        array_push( $imageUrls, $image->getUrl() );
    }

    return $imageUrls;
}

如果有人能够指出我可以解决这个问题的方法,我将非常感谢谢谢!

1 个答案:

答案 0 :(得分:2)

您的问题是您只需获取一次数组:

$row = mysql_fetch_array( $result );

所以它在表格的字段上运行foreach及其值,而不是整个结果集!

您需要获取数组,直到$rowNULL,如下所示:

while($image = mysql_fetch_array( $result )) {
    $temp_image = new Image ( $image['id'], $image['title'], $image['url'],
                              $image['caption'], $image['width'], $image['height'],
                              $image['entry_id'] );
    $imageArray[] = $temp_image;
}