我正在尝试在表格中显示来自SQL数据库的图像(使用数据库中的URL)。
我对这种类型的实现还是很陌生,所以我一直在尝试进行研究但是没有找到使用URL的相关信息(反对使用BLOB或直接将数据添加到数据库) )。我绝对想把我的图像保存在文件系统上。目前我的代码只显示了URL(显然),但我尝试过一些事情......
我试过了:
- 将$ row [“card_image”]传递给PHP变量$ image并使用$ image-> load()
- 使用"<img src="$row["card_image"]">"
(我想到,因为我得到一个链接输出仍然可以工作......)
- 我还尝试了一些我在Stack Overflow上发现的其他解决方案,但我相信这些解决方案主要用于BLOB数据类型,因此它们也无法产生我想要的输出(I.E.
"<img src="data:image/jpeg;base64,'.base64_encode($image->load())'" />"
这是我目前的代码:
SQL(我已经压缩字段以节省空间)
CREATE TABLE cards (
card_image VARCHAR(999)
);
insert into cards (card_image)
values ('http://localhost/dbztc/wp-content/uploads/2016/04/1.jpg');
PHP
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
if(!$conn)
{
die("connection failed");
}
//Table
echo "
<table cellpadding=\"0\" cellspacing=\"2\" border=\"0\" width=\"100%\">
<tr bgcolor=\"#666666\">
<td colspan=\"5\" align=\"center\"><b><font color=\"#FFFFFF\">" . $table[0] . "</font></td>
</tr>
<tr>
<td>Image</td>
<td>Card Number</td>
<td>Card Rarity</td>
<td>Card Name</td>
<td>Card Type</td>
<td>Card Style</td>
<td>Card Text</td>
</tr>";
$sqlquery = "SELECT card_image, card_number, card_rarity, card_title, card_type, card_style, card_text FROM cards";
$result = mysqli_query($conn, $sqlquery);
//$image = $row["card_image"];
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "<td>" . $row["card_image"] . "</td>" . "<td>" . $row["card_number"]. "</td>" . "<td>" . $row["card_rarity"] . "</td>" . "<td>" . $row["card_title"] . "<td>" . $row["card_type"] . "</td>" . "<td>" . $row["card_style"] . "</td>" . "<td>" . $row["card_text"] . "</td></tr>";
}
} else {
echo "0 results";
}
echo "</table>";
mysqli_close($conn);
答案 0 :(得分:0)
而不是:
<td>" . $row["card_image"] . "</td>
尝试:
$image = $row["card_image"]; // the image url
<td><img src='". $image . "'></td>
答案 1 :(得分:0)
对于任何偶然发现并可能遇到同样问题的人:
对于初学者,我从数据库条目中取出整个网址,并将其替换为仅限文件名。
之后,我编辑了我的代码:
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "<td>" . "<img src ='../images/" . $row["card_image"] . "'>" . "</td>" . "<td>" . $row["card_number"]. "</td>" . "<td>" . $row["card_rarity"] . "</td>" . "<td>" . $row["card_title"] . "<td>" . $row["card_type"] . "</td>" . "<td>" . $row["card_style"] . "</td>" . "<td>" . $row["card_text"] . "</td></tr>";
echo "<br />";
它现在显示完美。就像一张纸条,这是在与本地相对的实时服务器上完成的,这可能也会产生影响?不确定,但希望这可以帮助别人!