显示特定用户在特定用户的状态页面中选择的项目

时间:2017-08-09 08:44:28

标签: php mysql mysqli

我想问一下如何显示基于用户名的信息?我的意思是当我登录时,它会引导我选择数据页面。我的选择数据页面包含用户名,姓名和日期。名称是微调器中项目的名称,我将这些项目放在微调器中。例如,john的用户名在spinner中选择项目1,它将发送到数据库。然后,当进入状态页面时,它将仅显示John在John帐户中选择的项目。与其他帐户相同,在其帐户中仅显示自己选择的项目。 下面是我的选择项目php:

<?php 

if($_SERVER['REQUEST_METHOD']=='POST'){

    //Getting values
    $username = $_POST['username'];

    $name = $_POST['name'];
    $date = $_POST['date'];
    //Creating an sql query
    $sql = "INSERT INTO Selection (username, name, date) VALUES 
    ('$username','$name', '$date')";

    //Importing our db connection script
    require_once('dbConnect.php');

    //Executing query to database
    if(mysqli_query($con,$sql)){
        echo 'Selected Successfully';
    }else{
        echo 'Sorry, You Already Select this item';
    }

    //Closing the database 
    mysqli_close($con);
}
?>

查看状态Php:

<?php 
//Importing Database Script 
require_once('dbConnect.php');

//Creating sql query
$sql = "SELECT * FROM Selection";

//getting result 
$r = mysqli_query($con,$sql);

//creating a blank array 
$result = array();

//looping through all the records fetched
while($row = mysqli_fetch_array($r)){

    //Pushing name and id in the blank array created 
    array_push($result,array(
                    "id"=>$row['id'],
                    "username"=>$row['username'],
                    "name"=>$row['name'],
                    "date"=>$row['date']
                    )   
            );
}

//Displaying the array in json format 
echo json_encode(array('result'=>$result));

mysqli_close($con); 
?>

我正在使用localhost和phpmyadmin。

Selection的表格结构如下: -

id - primary key Not Null
username NOT NULL,
name NOT NULL,
date NOT NULL,
ALTER TABLE `Selection` ADD UNIQUE `unique_index`(`username`, `name`);

2 个答案:

答案 0 :(得分:0)

由于您没有提到Spinner和Selection表的Schema,假设一个简单的案例,解决方案就像下面的指示..

  1. 当用户登录时,捕获它username(通常将其存储在会话中直到他/她退出)。
  2. 在您的Status.php中,您的查询将是

    Select * from Selection where username = '$YOUR_USER_NAME_FROM_SESSION_HERE';
    
  3. 根据您的要求,这应该足够了。

    注意:在查询中直接使用变量将导致SQL注入的暴露。要防止Sql注入,请同时参考this answer

答案 1 :(得分:0)

当用户登录时使用$_SESSION["name"] = "$username";设置会话 现在会话已设置,然后您可以从视图页面中的任何位置访问您使用的会话变量 $user= $_SESSION["name"]

现在您从数据库中获取项目  喜欢

$sql = "SELECT * FROM Selection where username='$user'";

试试吧