目前我正在学习PHP和数据库,我编写了下面的脚本,将图像显示为我的div元素的背景,但输出实际上没什么!错误来自以下行:
echo "<div class=\"post\" style='background-image: url('\"<?php echo $data[Image];\"?>')'";?>
报价搞砸了!有人能告诉我如何纠正这个问题吗?我试图将双引号更改为单引号,但仍然无法正常工作。
这是我的完整脚本:
<div class="dashboardA">
<?php
$con = mysqli_connect("localhost", "Dave", "password");
if (!$con){
die ("Could not connect to database: " . mysqli_connect_error());
}
mysqli_select_db($con, "my_blog");
$sql = mysqli_query($con, "select * from article");
while ($data=mysqli_fetch_array($sql)){
echo "<div class=\"post\" style='background-image: url('\"<?php echo $data[Image];\"?>')'";?>
<?php echo "<p>" . $data["Title"] . "</p>";
echo "<p>" . $data["Category"] . "</p>";
echo "<p>" . $data["Published"] . "</p>";
echo "</div>";
}
?>
</div>
答案 0 :(得分:2)
你有点混淆了。你已经有了PHP开场标签,你再也不需要它们了。只需连接你的变量:
echo "<div class='post' style='background-image: url(\"$data[Image]\")'>";
注意:您还需要关闭开场<div>
代码。
答案 1 :(得分:0)
行
中有错误echo "<div class=\"post\" style='background-image: url('\"<?php echo $data[Image];\"?>')'";?>
你已经在php了,所以那里的开场标签是错误的。
尝试:
echo "<div class=\"post\" style='background-image: url(\"" . $data[Image] . "\")'";?>
答案 2 :(得分:0)
试试这个
while ($data=mysqli_fetch_array($sql)){
echo "<div class=\"post\" style='background-image: url('\"<?php echo $data[Image];\"?>')'";?>
<?php echo "<p>" . $data["Title"] . "</p>";
echo "<p>" . $data["Category"] . "</p>";
echo "<p>" . $data["Published"] . "</p>";
echo "</div>";
}
替换此
用这个
while ($data=mysqli_fetch_array($sql)){
$img = $data["Image"];?>
<div class="post" style="background-image: url('<?php echo $img;?>')" >
<?php echo "<p>" . $data["Title"] . "</p>";
echo "<p>" . $data["Category"] . "</p>";
echo "<p>" . $data["Published"] . "</p>";
echo "</div>";
}
答案 3 :(得分:0)
您实际上在以下echo命令中正确执行了该操作。要合并变量和字符串的值,请使用“。”。这基本上替代了其他语言中用于此目的的“+”。因此,此处不需要打开新的php标记。
正确的代码是
echo '<div class="post" style="background-image: url(\'' . $data[Image] . '\')">';
答案 4 :(得分:0)
在php标签之外试试这个。
<div class="post" style="background-image: url('<?php echo "$data[Image]"; ?>');">