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

标签 php mysql mysqli

请问如何显示基于用户名的信息?我的意思是当我登录时,它会引导我选择数据页面。我选择的数据页面有用户名、姓名和日期。名称是微调器中项目的名称,我将这些项目放在微调器中。例如,用户名 john 在微调器中选择第 1 项,它将发送到数据库。那么当进入状态页面时,它只会显示约翰在约翰帐户中选择的项目。与其他账户一样,在他们的账户中只会显示他们自己选择的项目。 下面是我选择的项目 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`);

最佳答案

由于您没有提到 Spinner 和 Selection 表的架构,假设您有一个简单的案例,解决方案如下所示。

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

    Select * from Selection where username = '$YOUR_USER_NAME_FROM_SESSION_HERE';
    

根据您的要求,这应该足够了。

注意:直接在查询中使用变量会导致 SQL 注入(inject)暴露。防止Sql注入(inject),引用this answer也是。

关于php - 在特定用户的状态页面中显示特定用户选择的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585750/

相关文章:

php - 根据选择的顺序重新排列列表

php - 使用 Laravel 的多个项目

PHP MySQLi 不插入到表中

php mysqli "No database selected"使用类

php - MySQLi insert_id()

php mysql 从数据库中检索单个值

php - 在 TLS 握手中不支持 SNI 的服务器是否可以毫无问题地启用 SNI

mysql - 如何使用 laravel eloquent 连接表?

更新记录的mysql语法

php - .Htaccess Url 重写将 %20(空格)替换为 "-"