【问题标题】:Displaying Separate Column Values with PHP使用 PHP 显示单独的列值
【发布时间】:2020-03-05 11:35:45
【问题描述】:

我目前正在尝试将数据库名称与图像文件名关联起来,到目前为止我已经成功地做到了这一点。但是,当我尝试将这些名称放在图像顶部时,它只使用最后一组名称并将其放在所有图像上。这不是我想要做的。

我希望能够获取一个文件名,在数据库中找到它,然后将其替换为与该帖子对应的名称。 (我的情况是他们是艺术家,所以如果文件名是 original-5192eef6f06cc.jpg,我会将其替换为 This Super Cool Band Name,并覆盖在单个图像。

这是我的代码

<?php
$hostname="localhost";
$username="root";
$password="";
$db = "sbp old 2";


$imagesDirectory = "images/";

if(is_dir($imagesDirectory))
{
 $opendirectory = opendir($imagesDirectory);

 while (($image = readdir($opendirectory)) !== false)
 {
     if(($image == '.') || ($image == '..'))
     {
         continue;
     }

     $imgFileType = pathinfo($image,PATHINFO_EXTENSION);
$string = "600x600";
     if(strpos($image, $string) !== false) {

}
         else if(($imgFileType == 'jpg') || ($imgFileType == 'png') || ($imgFileType == 'jpeg')) {

             $dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
             foreach($dbh->query('SELECT REPLACE("'.$image.'", "'.$image.'", name) basename, name FROM media, artists where media.id = artists.id') as $row) {
             $output = '<h6 class="text2">'.$row['basename'].'</h6>';
                 }

         echo '<div class="img-container">';
             echo "<a href='images/".$image."'><img src='images/".$image."' class='actimage' width=300' height='300'></a>";
                 echo "<a href='images/".$image."'>";
                         echo '<div class="overlay">';
                                 echo '<h6 class="text">'.$image.'</h6>'; //FileName Text
                                 echo '<h6 class="text2">'.$output.'</h6>'; //FileName Text

                                 echo '</div>';
                             echo '</a>';
                 echo '</div>';

}
 }
 closedir($opendirectory);

}
?>

处理文本查找和替换的部分是:

$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
                foreach($dbh->query('SELECT REPLACE("'.$image.'", "'.$image.'", name) basename, name FROM media, artists where media.id = artists.id') as $row) {
                $output = '<h6 class="text2">'.$row['basename'].'</h6>';
                    }

有人可以帮我吗?

谢谢

【问题讨论】:

  • 这很不清楚您要做什么,并且缺乏适当的缩进也无济于事。为什么要用相同的文本替换文本?为什么要从两个表中选择?这两个表上的id 列之间是什么关系?

标签: php html mysql sql


【解决方案1】:

这是查询...

foreach($dbh->query('SELECT REPLACE("'.$image.'", "'.$image.'", name) basename, name FROM media, artists where media.id = artists.id') as $row) {

您应该可以在此处看到以下字段:“basename”和“name”。如果你用这个打印“basename”......

$output = '<h6 class="text2">'.$row['basename'].'</h6>';

然后用这个打印“名字”...

$output = '<h6 class="text2">'.$row['name'].'</h6>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2016-03-21
    • 2021-06-08
    • 1970-01-01
    • 2021-06-10
    相关资源
    最近更新 更多