我有一个系统,用户可以在其中提交一篇文章(基本上是任何长度的文本),当它提交到数据库时,它会被分解成段落并放入自己的paragraphs
表格中。第二个表是articles
表,其中包含article_id (primary key)
,title (title of article)
和idUsers (id of user that submitted article)
。我能够成功地将数据提交到表中,但是当我查询以尝试获取段落时,使用:
$q = "SELECT articles.article_id, articles.title, paragraphs.paragraph, articles.date, articles.idUsers FROM articles JOIN paragraphs ON articles.article_id = paragraphs.article_id WHERE idUsers = '$idUsers' AND articles.article_id = '$article_id'";
$r = mysqli_query($conn, $q);
返回了多行,每行都提供相同的信息(段落列除外,它具有唯一的段落文本。但标题和日期返回了两次)。这是我所期望的,但我不想两次返回所有内容。例如,如果文章中有两个段落,一个 say"random text 1"
和另一个 say "random text 2"
,这两个都将返回,这很好,但是article_id
,article_title
, 和articles.date
等也会与唯一的段落一起在每行中返回文本。这意味着当我回显所有这些值时,所有内容都会回显两次。当我将这些值放在 a 中时<div></div>
,就像这样,
echo '<div class="get-article-container">';
echo '<div id="articleTitle">'.$row['title'].'</div>';
echo '<div id="articleContents">'.$row['paragraph'].'</div>';
echo '<input type="hidden" value="'.$row['article_id'].'" class="article_id_value">';
echo '</div>';
它创建了两个divs
而不是一个,因为要返回多行。我想将这些$row['paragraph']
值组合起来将文章中的所有文本放在一个 div 中,但它应该在一个 div 中,而不是两个。有什么建议么?
您可以通过格式化之前的值然后回显它们来完成此操作即使您跳过空检查,它也会返回与标题相同的结果,并且所有返回的行中的文章 ID 都相同。
foreach($r as $row){
(!$title)?$title=$row['title']:$title;
$paragraph .= '<p>'.$row['paragraph'].'</p>';
(!$articleId )?$articleId =$row['article_id']:$articleId ;
$articleId = $row['article_id'];
}
echo '<div class="get-article-container">';
echo '<div id="articleTitle">'.$title.'</div>';
echo '<div id="articleContents">'.$paragraph .'</div>';
echo '<input type="hidden" value="'.$articleId .'" class="article_id_value">';
echo '</div>';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句