使用PHP返回图像标记内的SQL数据

时间:2018-11-01 16:13:27

标签: php html sql

当我运行以下文件时,我获得了数据库数据,即它将其打印在网站上,因此我知道我的连接很好。

<html>
<?php include 'config.php'?>
<?php include 'header.php'?>

<?php 
$sql = "SELECT name, image FROM images";
$result=mysqli_query($conn,$sql);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
echo $row["name"], $row["image"];
}
?>

</div>
</html>

但是,当我尝试格式化以下结果时

<html>
<?php include 'config.php'?>
<?php include 'header.php'?>

<?php 
$sql = "SELECT name, image FROM images";
$result=mysqli_query($conn,$sql);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
echo <div id = "bookbar">
<img src= "$row['image']" alt = "image">
<p> $row['name'] </p>

</div>
}
?>

</div>
</html>

它不起作用。谁能帮我修复代码?

4 个答案:

答案 0 :(得分:0)

将您的echo语句更改为-

echo '<div id = "bookbar"><img src= "' . $row['image'] . '" alt = "image"><p>'. $row['name'] .'</p>'

答案 1 :(得分:0)

您的问题是语法问题-您不能像这样使用echo,它必须回显字符串变量。您应该会看到关于它的错误消息。

可以保留echo语句并将所有HTML放入字符串中,然后将PHP数据连接(或插入)到其中。但是,就可读性和维护而言,IMO最简单的方法是退出PHP标签,打印HTML,在其中嵌入一些变量的PHP标签,然后再次返回以继续执行代码。它使HTML更加容易理解:

?>
<div id="bookbar">
  <img src="<?php echo $row['image'] ?>" alt="image">
  <p><?php echo $row['name'] ?></p>
</div>
<?php

答案 2 :(得分:0)

也许试试看,您的代码没有正确关闭/打开php标签,也没有那样的回声

<?php include 'config.php'?>
<?php include 'header.php'?>

<?php 

$sql = "SELECT name, image FROM images";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
       ?>

       <div id = "bookbar">
            <img src= "<?php echo $row['image'] ?>" alt = "image">
            <p><?php echo $row['name']; ?></p>
        </div>

       <?php
    }
}

$conn->close();
?>

如果您想回声

最好像这样关闭php标签

PHP goes here
?>
HTML goes here
<?php
PHP goes here

如果您想在HTML中回显某些内容,请执行此操作

<span> <?php echo "something" ?> </span>

容易得多,并使代码更易于阅读。

答案 3 :(得分:0)

php模式下,您应该将echo字符串作为用单引号引起来的php变量:

while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
    echo '<div id = "bookbar">';
    echo '<img src="' . $row['image'] . '" alt = "image">';
    echo '<p>' . $row['name'] . '</p>';
    echo '</div>';
}