在包含某些单词的文件夹中显示所有图像?

时间:2013-12-31 04:52:04

标签: php database image

有人可以帮帮我!我在表格上有名字:"user01-Diana"

我在文件夹上的图像文件很少被重命名为ex: "user01_20131231_1201.jpg""user01_20131231_1216.jpg"以及"user02_20131231_1201.jpg"

我想要的是从表中读取单词user01然后用它来显示文件夹上有单词“user01”的所有图像并将其显示为ASC。 有人能帮助我吗?我对php不是很好。熬夜仍然没有得到它。

2 个答案:

答案 0 :(得分:1)

根据问题中的新修改,请尝试以下代码。

首先获取要在变量中获取记录的名称,例如user01-Diana

$name = "user01-Diana";

现在提取要搜索记录的文本,例如user01

$name = substr($name, 0, strpos($name, '-'));

现在我们将创建一个模式,我们必须匹配文件夹中的图像名称, 在这种情况下,我们的模式是'/ user01 /'

$pattern = "/$name/";

现在指定直接在opendir函数

中形成currnt文件的路径
if ($handle = opendir('./userimg')) {
    //here we are matching user01 against the files in the directory
    while (false !== ($entry = readdir($handle))) {
        //those that get matched will be echoed below
        if(preg_match($pattern, $entry))
            echo "<br />".$entry;
    }
    closedir($handle);
}


符合先前要求的旧代码

首先,您必须从user1

中提取user01-Diana

你可以通过

来做到这一点
$name = "user01-Diana";

$name = substr($name, 0, strpos($name, '-'));

现在,您将在user01变量中获得$name

之后,您可以使用以下查询。

$sel = "SELECT * FROM tablename where imagename like '".$name."%'";

如果您在同一个表中有数据,如下所示,

enter image description here

使用以下查询

Select 
    t1.imagename
from 
    Table1 as t1
LEFT JOIN
    Table1 as t2
ON
    t1.imagename LIKE concat("'", substr(t2.username, 1,(LOCATE("-",t2.username)-1)) , "%'") 
WHERE 
    t1.imagename IS NOT NULL
ORDER BY
    t1.imagename

答案 1 :(得分:0)

您应该有一个查询来从表格中选择图像名称将以'user01'开头的图像。你的代码应该是这样的:

$db = new mysqli('localhost', 'user', 'pass', 'database');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = "select column_name as image from your_table where column_name like 'user01%' order by column_name";
if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}


while($row = $result->fetch_assoc()){
    echo $row['image'] . '<br />';
}