获取行并分解-PHP mySQL
这是我的密码:获取行并分解-PHP mySQL,php,mysql,row,fetch,explode,Php,Mysql,Row,Fetch,Explode,这是我的密码: $postsql = "SELECT * FROM post WHERE id='{$_GET['id']}'"; $posts = mysqli_query($connect,$postsql) or die("Error: ".mysqli_error($connect)); $post = mysqli_fetch_array($posts); $postAuthor = $post['author']; $postDate = $post['date']; $post
$postsql = "SELECT * FROM post WHERE id='{$_GET['id']}'";
$posts = mysqli_query($connect,$postsql) or die("Error: ".mysqli_error($connect));
$post = mysqli_fetch_array($posts);
$postAuthor = $post['author'];
$postDate = $post['date'];
$postCat = mysqli_fetch_row($post['cat']);// I've tags here separated by commas.
$postCatTag = explode(",",$postCat);
$postText = $post['text'];
echo "<img class='view_newsimg' src='{$postImg}'>
<h3 class='lath'>{$postTitle}</h3>
<ul class='det'><li class='adc'>avtori: {$postAuthor}</li>
<li class='adc'>TariRi: {$postDate}</li>
<li class='adc'>kategoria: <a href='#'>{$postCatTag}</a></li>"; // tags are shown here
echo <<<TEXT
<p class="news">{$postText}</p>
TEXT;
因此,浏览器中的“标记”部分将显示:
卡蒂戈里亚:阵列
而不是显示表中的标记。
为什么?如何获得所需的结果?$postattag是一个数组。数组到字符串的转换总是产生数组。您可以使用-函数使用给定的分隔符来存储数组:
implode(', ', $postCatTag);
或者您可以只使用$POSTAT,因为它已经是由“,”分隔的字符串标记。$POSTATTAG是一个数组。阵列不能通过echo显示 为此使用循环:
for($i=0;$i<count($postCatTag),$i++){
echo "<li class='adc'>kategoria: <a href='#'>$postCatTag[$i]</a></li>";
}
希望它对您有用。如果您想显示标签列表,请不要分解列表。但是标签不止一个,我希望它们有单独的链接。那么您应该使用循环。您需要什么样的标签输出?我需要并列显示单独的链接我知道,请参阅我答案的最后一行。内爆部分是为了完整性,以防他需要自定义分隔符。如果变量中已经有逗号分隔的值,那么内爆需要什么?可能是因为tag1、tag2、tag3看起来比tag1、tag2、tag3好。我不建议使用与爆炸相同的分隔符再次内爆。您的db是否也包括逗号后的空格?在这种情况下,只需将{$postattag}替换为{$postat}。否则使用……以及如何插入?替换kategoria:;检查我的代码并让我知道。我的代码中有一个小错误。我在回答中重新编辑了它。它是$I吗?这样:echo{$postTitle}avtori:{$postAuthor}TariRi:{$postDate}for$i=0$这是因为您的数组$PostAttag为空。不要用“代替”。编译器读取并转换内部的所有内容,但当它出现在accross'中时,它只是将其打印出来。在某处写下print\r$postattag,然后查看结果。它将在数组中显示内容。将帮助您调试代码。
echo "<li class='adc'>kategoria:';
for($i=0;$i<count($postCatTag),$i++)
{
echo "<a href='#'>$postCatTag[$i]</a>";
}
echo "</li>";