使用 PHP 显示单独的列值
Posted
技术标签:
【中文标题】使用 PHP 显示单独的列值【英文标题】:Displaying Separate Column Values with 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
列之间是什么关系?
【参考方案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>';
【讨论】:
以上是关于使用 PHP 显示单独的列值的主要内容,如果未能解决你的问题,请参考以下文章