我已将图像信息存储在我的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;
}
如果有人能够指出我可以解决这个问题的方法,我将非常感谢谢谢!
答案 0 :(得分:2)
您的问题是您只需获取一次数组:
$row = mysql_fetch_array( $result );
所以它在表格的字段上运行foreach
及其值,而不是整个结果集!
您需要获取数组,直到$row
为NULL
,如下所示:
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;
}