使用SQL循环和显示文件夹中的图像

时间:2012-07-18 02:50:04

标签: php

我有一个文件中的图像列表。文件名以及有关图像的详细信息存储在mysql表中。我创建了一个while循环,在我的页面上随机生成多个图像。但是有一个问题。我的网页没有生成任何图片。我把它缩小到我创建的clothes_data函数。我只是难以接受我需要做的事情。这是下面的代码。

<?php
function clothing_data ($id) {
    $data = array();
    $id = (int)$id; 
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();   
    if ($func_num_args > 1) {   
        unset($func_get_args[0]);
        $fields ='`' .  implode ('`, `', $func_get_args) . '`';
        $data = mysql_fetch_assoc (mysql_query("SELECT $fields FROM `dress` WHERE `primary_id` = $id"));
    return $data;
    }
}

$num_dresses = dress_count ();

$i = 0;    
while ($i < 5)
{   
    $rand_id = rand(1, $num_dresses);
    $dress_feed_data = clothing_data($rand_id, 'file_name', 'user_defined_name', 
'user_defined_place' , 'user_who_uploaded');
    echo $dress_feed_data['file_name'];
    if (file_exists('fashion_images/' . $dress_feed_data['file_name']))
    {
?>

<br>
<img src="fashion_images/<?php echo $dress_feed_data['file_name'];?>" width="50" height="50" />
<?php
    }
    $i++;
}
?>

3 个答案:

答案 0 :(得分:0)

<img>代码中,$dress_feed_data[file_name]应为$dress_feed_data['file_name']

答案 1 :(得分:0)

很可能$field为空或包含错误的列名或其他错误。当你var_dump()时,你会得到什么?

由于您已经在$dress_feed_data = clothing_data($rand_id, 'file_name', 'user_defined_name', 'user_defined_place' , 'user_who_uploaded');

中定义了列

你可以简单地将你的功能改为像

这样的东西
function clothing_data ($id, $field1, $field2, $field3, $field4) {
    $data = array();
    $id = (int)$id; 
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();   
    $fields ='`' .  $field1 . '`, `' .  $field2 . '`, `' .  $field3 . '`, `' .  $field4 . '`';
        $data = mysql_fetch_assoc (mysql_query("SELECT $fields FROM `dress` WHERE `primary_id` = $id"));
   return $data;
}

答案 2 :(得分:0)

我解决了这个问题。涉及多个问题。对于一个我的主要ID没有链接到我的数据库中随机生成的ID。它无法工作的另一个原因是因为与我的文件名相关的字段与我的images文件夹中的字段不同。这是因为当文件的名称插入到我的数据库中时,会在名称中添加一个空格,从而无法将我的数据库上的名称链接到我的文件夹中的名称。感谢所有帮助人员。