如何将只有当前登录用户之前输入的数据导入数据库?

我在开发方面是相当新的,因为我在此之前所做的一切只是管理数据库。我想出了一个系统,它将有三种类型的用户。

  1. 管理

  2. 管理

  3. 用户

我通过将用户角色管理到登录名中成功创建了多用户登录页面。但是我目前遇到的问题是,我无法查看只有当前用户以前提交的数据。例如,我有两个用户,Ariel和Lyla。我想做的是,当Ariel登录系统时,Ariel只能看到她已经提交到数据库的内容,就像目前一样,她可以看到提交的全部数据。我已经这样做了

$sql = "SELECT * FROM iirincidentmain_draft WHERE username='$_SESSION[user][username]'";

但作为回报,我得到了这个错误

注意:数组到字符串的转换

我的完整代码如下

<?php

session_start();

//Checking User Logged or Not

if(empty($_SESSION['user'])){

 header('location:../index.php');

}

//Restrict admin or Moderator to Access user.php page

if($_SESSION['user']['role']=='admin'){

 header('location:../admin/index.php');

}

if($_SESSION['user']['role']=='management'){

 header('location:../management/index.php');

}



require_once("../db.php");

?>

<div class="col-md-9 bg-white padding-2">

<h3>Reports in Draft</h3>

    <div class="row margin-top-20">

      <div class="col-md-12">

       <div class="box-body table-responsive no-padding"> 

       <table id="example" class="table table-striped table-bordered" style="width:100%">

      <thead>

        <th>Incident Date</th>

        <th>OPU Region Or Country</th>

        <th>Incident Title</th>                      

        <th>Incident Category</th>

        <th>Status</th>

        <th>Draft IIR</th>

        <th>Edit</th>

      </thead>

      <tbody>

      

      <?php

$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='$_SESSION[user][username]'";

  $result = $conn->query($sql);

     if($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) 

         {?>

    

有人可以建议我吗?


largeQ
浏览 108回答 1
1回答

森林海

更改此行:$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='$_SESSION[user][username]'";成为:$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='" . $_SESSION['user']['username'] . "'";换句话说,您在会话中有一个拼写错误,缺少引号。在将数组值附加到字符串时,使用点表示法也是必要的(我认为)。因此,您可能遇到的字符串转换错误是由于解析器仅在嵌入外部双引号时才看到的情况。$SESSION其他人可能会注意到你应该逃避这一切。转义用户名的有效方法是设置 sql 预准备语句。
打开App,查看更多内容
随时随地看视频慕课网APP