所以我从两个查询中得到了一些数据,但是我在样式化方面失败了。
0
1
2
3
4
5
我想要的只是回应和设计我从查询中获得的数据并包含他们的href链接。 当我尝试添加href =“”和class =“”时,代码会混乱,因为“”会损坏字符串。
有没有办法回应数据而不会弄得太糟糕?
提前致谢。
答案 0 :(得分:1)
你试图把所有这些都塞进一根绳子里,这让你自己很难过。如果您编写的大部分内容都是HTML,那么通常最好将其写在PHP标记之外,并将PHP放在您需要的地方。
所以而不是:
echo '<div class="'.'col s6">'.'<h4><a href="'.'/topic.php?id='.$row['id'].'">'.$row['title'].'</h4>'.'<img src="'.$row['image'].'".\'class="'.'responsive-img">'.'<p class="'.'class="light'.'">'.$row['highlights'].'</p></a> '.'in '.$cat['name'].'</div>';
你可以这样写:
?>
<div class="col s6">
<h4>
<a href="/topic.php?id=<?= $row['id'] ?>">
<?= $row['title'] ?>
<img src="<?= $row['image'] ?>"class="responsive-img">
<p class="light">
<?= $row['highlights'] ?>
</p>
</a>in <?= $cat['name'] ?>
</h4>
</div>
这样写这样可以更容易发现错误,你在错误的地方关闭<h4>
,并使其对其他人更具可读性。
答案 1 :(得分:1)
我建议使用sprintf方法来渲染具有给定变量的模板,这样就可以更好地了解所需内容以及预期结果。
所以给你的$ row和$ cat数组是这样的
$row = [
'id' => 1,
'title' => 'Some title',
'image' => 'http://something.test/some/image.png',
'highlights' => 'Dont know what it might be',
];
$cat = [
'name' => 'category one'
];
以下演示如何将其值注入给定的PHP模板
<?PHP
$template = '
<div class="col s6">
<a href="%s">
<h4>%s</h4>
<img src="%s" class="responsive-img">
<p class="light">%s</p>
</a>in %s
</div>';
$rendered = sprintf(
$template,
'topic.php?id=' . $row['id'],
$row['title'],
$row['image'],
$row['highlights'],
$cat['name']
);
echo $rendered;
因此,上面的示例将输出以下HTML代码段
<div class="col s6">
<a href="topic.php?id=1">
<h4>Some title</h4>
<img src="http://something.test/some/image.png" class="responsive-img">
<p class="light">Dont know what it might be</p>
</a>in category one
</div>
请注意,你的HTML本身有一些缺陷,但看到你的问题是关于PHP的一面,我不打算详细介绍。
答案 2 :(得分:0)
你在某些地方做了不必要的连接。此外,您还需要修复<h4>
标记的位置。
echo '<div class="col s6"><a href="/topic.php?id='.$row['id'].'"><h4>'.$row['title'].'</h4><img src="'.$row['image'].'" class="responsive-img" /><p class="light">'.$row['highlights'].'</p></a> in '.$cat['name'].'</div>';