从数据库显示图像作为php中div元素的背景

时间:2014-07-17 09:08:26

标签: php html database

目前我正在学习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>

5 个答案:

答案 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]"; ?>');">