$sql = "SELECT * from post where forum_id = $_GET[id]";
$result = mysqli_query($conn, $sql) or die('Error querying database.');
while ($row = mysqli_fetch_array($result)) {
echo '' . $row['fourm_id'];
echo '<div id="post3">
<p class="1">
<span class="name">'.'
' .$row['name']. '</span>'.
'<span class="trip">
' .' !'
. $row['title'].''.
' </span>'.
' <span class="time">
' .$row['time']. '' .
' </span>'.
' </p>
<p class="2">
<span class="texts">
' .$row['texts']. '' .
' </span>'.
' </p>'.
if (!isset($_SESSION["user_id"])) {
}
else {
'<a href="delete_post.php?fourm_id=' . $row['id']. '>Delete</a>' . }
' </div>';
}
mysqli_close($conn);
?>
代码中的错误是显而易见的,只是显示了我想要做的事情。
这个回声我在这里显示用户帖子,我怎么去坚持在那里的isset所以只有管理员可以看到删除链接?或者是否有其他方式在回声之外进行,而不是在用户帖子之外?
答案 0 :(得分:0)
<?
$data = array();
$sql = "SELECT * from post where forum_id = ".intval($_GET['id']);
$res = mysqli_query($conn, $sql) or trigger_error(mysqli_error($conn));
while ($row = mysqli_fetch_array($result)) {
$data[] = $row;
}
?>
<?php foreach($data as $row): ?>
<?=$row['fourm_id']?>
<div id="post3">
<p class="1">
<span class="name"><?=$row['name']?></span>
<span class="trip"> !<?=$row['title']?></span>
<span class="time"><?=$row['time']?></span>
</p>
<p class="2">
<span class="texts"><?=$row['texts']?></span>
</p>
<? if (isset($_SESSION["user_id"])): ?>
<a href="delete_post.php?fourm_id=<?=$row['id']?>">Delete</a>
<? endif ?>
</div>
<? endforeach ?>
答案 1 :(得分:-1)
如果您想以内联方式进行,可以使用ternary operator或sprintf
之类的内容。
三元运算符(如果只有几个插入,则最好):
echo "Foo ".(isset($bar) ? "bar" : "");
(s)printf
(如果您有多次插入,则最好):
printf("Foo %s", isset($bar) ? "bar" : "");
然而,这不会扩展很多,所以当你有大规模的“字符串结构”时,将输出分成多个语句会更加明智:
echo "Foo ";
if (isset($bar)) {
echo "bar";
}
如果你有很多插入,这是最好的。