2012-05-01 4 views
0
$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 внутри эха? Или есть лучший способ?

Это эхо, которое у меня есть, показывает сообщение пользователей, как бы я пошел на вставку isset там, так что только админы могут видеть ссылку на удаление? Или есть другой способ сделать это за пределами эха, не выходя из пользовательского сообщения?

+1

* Вздох *, http://bobby-tables.com/ – Quentin

ответ

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 ?> 
+0

Ты сделал это так красиво! Некоторые из них для меня чужды, но я отдам его, прежде чем копировать и публиковать! благодаря!. –

-1

Если вы хотите сделать это inline, вы можете использовать ternary operator или что-то вроде sprintf.

троичный оператор (лучше всего, если у вас есть только несколько вставок):

echo "Foo ".(isset($bar) ? "bar" : ""); 

(s)printf (лучше всего, если у вас есть несколько вставок):

printf("Foo %s", isset($bar) ? "bar" : ""); 

Однако это не масштабируется очень много, поэтому, когда у вас есть крупномасштабная «струнная конструкция», гораздо проще разделить выпуск на несколько заявлений:

echo "Foo "; 
if (isset($bar)) { 
    echo "bar"; 
} 

Это лучше всего, если у вас есть много вставок.

+0

Так комбинируя, что с этим, если (! Исеть ($ _ SESSION [ "user_id"])) { \t \t \t \t} \t \t \t \t else { \t \t \t \t '

+0

Хорошо, я попробую –

Смежные вопросы