当我运行以下文件时,我获得了数据库数据,即它将其打印在网站上,因此我知道我的连接很好。
<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>
它不起作用。谁能帮我修复代码?
答案 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>';
}