有没有一种方法可以从通过循环创建的表中设置$ _SESSION变量

时间:2020-03-20 22:55:53

标签: php sql pdo session-variables

我正在做一个学校项目,我们需要使用数据库创建一个网站,我现在要创建的内容是我们学校的FAQ论坛,而我所需要的只是一种提出问题的方式。现在我有一张桌子,上面有使用此代码生成的问题。

`

  $query="SELECT vraag, vragen_id, v_naam, tv, a_naam
          FROM vragen, personen
          WHERE vak_id = 1
          AND vragen.id=personen.id
          GROUP BY vraag
          ORDER BY vragen_id DESC";
  $result=$conn->query($query);

  echo "<table class = 'w3-table w3-striped w3-bordered w3-hoverable'>";
      echo "<tr>";
        echo "<th>Vraag nummer &nbsp</th>";
        echo "<th>Gestelde vraag &nbsp</th>";
        echo "<th>Gesteld door &nbsp</th>";
      echo "</tr>";

    foreach($result as $row) {
      echo "<tr>";
        echo "<td>" . $row['vragen_id'] . "</td>";
        echo "<td><a href='antwoorden.php'>" . $row['vraag'] . "</a></td>";
        echo "<td>" . $row['v_naam'] . " " . $row['tv'] . " " .  $row['a_naam'] ."</td>";
      echo "</tr>";
    }
  echo "</table>";
?>`

我需要知道是否可以将$_SESSION['vraag']设置为已单击的$row['vraag']的值。

2 个答案:

答案 0 :(得分:0)

用户单击时必须传递$row['vraag']的值。

echo "<td><a href='antwoorden.php?vraag=".$row['vraag']."'>" . $row['vraag'] . "</a></td>";

,然后以antwoorden.php的代码读取它并将其写入会话中

// do not forget to activate session
session_start();

$_SESSION['vraag'] = $_GET['vraag'];

答案 1 :(得分:0)

我了解您想将答案存储在数据库中

因为您的问题将包含空格和其他字符,因此您必须为该行创建标识符,否则将惹恼您。我认为使用发帖请求会更容易。

一个选项是为每一行创建一个答案表单:

board

捕获表单数据以将其插入数据库,并且不要忘记在插入之前确保输入的安全性。

<form action="/antwoorden.php" method="post">
   <label for="antwoord">antwoord:</label>
   <input type="text" name="antwoord">
   <input type="hidden" name="vragen_id" value="{$row['vragen_id']}">
   <input type="submit" value="antwoord">
</form>

当然,如果您只想将其存储在会话中。成为我的客人,这样做。