好吧,我已经对这个问题喋喋不休了一会儿,似乎无法在谷歌或其他任何地方得到我想要的东西。我使用PHP和MySQL构建了一个CMS博客。它很棒。我有一个表格,其中包含博客信息(标题,作者,日期和帖子)。在我的index.php中,我点击它:
$sql = "SELECT posts.ID as 'ID' ,
posts.author as 'author' ,
posts.title as 'title' ,
posts.category as 'category',
posts.date as 'date',
LEFT(posts.post, 312) as 'post'
FROM posts
ORDER BY date DESC
LIMIT 3";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){
然后我通过以下方式将它们滚到屏幕上:
echo $row['ID'];
echo $row['title'], etc., etc.
我还有一个包含一些图像信息的表 - 只有大小,文件名等。
在“帖子”表格中,实际帖子会写在文字字段中。我真的想在图片的文本中放置一些占位符 - 你知道,使博客文章看起来更好,一些与内容相关的散布图像。我似乎无法让它正常工作。我试着把它拉下来:
$sql2 = "select * from images, posts where posts.ID = images.image_post";
$result2 = mysql_query($sql2) or die ("Could not access DB: " . mysql_error());
while ($row2 = mysql_fetch_assoc($result2))
{
echo "<div class=\"picture\">";
echo "<p>";
// Note that we are building our src string using the filename from the database
echo "<img src=\"images/" . $row2['image_url'] . "\" alt=\"\" /><br />";
echo "</p>";
echo "</div>";
}
然后我回复帖子。所以图片显示,但文件夹中的所有图片都显示在每个帖子中。我认为这是因为它在while循环中是一个while循环 - 我相当肯定可能会破坏宇宙中的一个洞。
我想要的只是图片,以显示我在帖子文本中标记它们的位置。
任何人都可以帮我理解如何将我在posts表格的文本字段中添加的“标记”与图像表中的图像相匹配吗?我一直在网上看,但每个人似乎都使用不同的想法 - str_replace,preg_match,preg_replace;我似乎无法绕过他们中的任何一个。
那么,我哪里错了?
答案 0 :(得分:1)
我不明白你想要从$ sql2中得到什么。您是否尝试仅获取标记为属于当前帖子的图像?然后你需要类似的东西(你错过了AND子句):
$sql2 = "select * from images, posts where posts.ID = images.image_post
AND posts.ID = ".$row['ID'];
在那之后,你需要一种方法将图像放在帖子中,而不仅仅是最后,我想。也许你可以在帖子的文本中加入某种标签,然后对其进行字符串替换。
因此,您的文本中可能会显示[imageID:2837]
的内容,然后在上面的循环中,您将更改代码以使用正则表达式拉出imageID,并执行(例如)。
$sql2 = "select * from images where images.ID = ".$imageId