Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示当前会话的一行_Php_Mysql_Mysqli - Fatal编程技术网

Php 显示当前会话的一行

Php 显示当前会话的一行,php,mysql,mysqli,Php,Mysql,Mysqli,所以在我的用户表中有5列。Id、用户名、密码、电子邮件和金钱 money列是一个int,用来显示用户有多少钱。(我正在做游戏) 我正在尝试制作一个脚本,显示当前会话中用户的钱数,但我的脚本显示每个用户的钱数 我的代码: <?php session_start(); ?> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "database4"; // Create c

所以在我的用户表中有5列。Id、用户名、密码、电子邮件和金钱

money列是一个int,用来显示用户有多少钱。(我正在做游戏)

我正在尝试制作一个脚本,显示当前会话中用户的钱数,但我的脚本显示每个用户的钱数

我的代码:

<?php session_start(); ?>

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database4";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM users";
$result = $conn->query($sql);



if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo $row['money'];
    }
} else {
    echo "You have no items yet!";
}
$conn->close();
?>


如何执行此操作?

您的select查询中缺少where子句

可能是这样的:

$sql = "SELECT * FROM users WHERE id='{$_SESSION['user_id']}'";
$result = $conn->query($sql);
您只需将
$\u会话['user\u id']
替换为用户登录时存储的用户id即可

编辑:

确保您有
session_start()页面开始的位置,此外,您可以在用户表中的电子邮件列上创建唯一索引

$sql = "SELECT * FROM users WHERE email='{$_SESSION['email']}'";
$result = $conn->query($sql);

您的select查询中缺少where子句这只是临时的,但是您是否正在限定SQL查询的范围以仅返回当前用户的值?您的
'SELECT*FROM users'
语句让我相信您需要对该查询进行更多的限定。是的,这就是我正在尝试做的。但是,我们应该在哪里做呢?这是正确的吗$sql=“从用户名为“”的用户中选择*”$\u会话['user\u name']。“”;哈哈,我真的不知道怎么做这个seth,哪个变量保存当前用户的值?您需要指定类似于
“从USERS.ID=CURRENT\u USER.ID”的用户中选择钱”
。我不知道您是否有一个正在传递的变量可以实现这一点。“WHERE”将限定结果的范围,以便只返回ID与您指定的ID(当前用户)匹配的用户的货币值。我不能给你一个明确的答案,因为我不知道你会从你的代码中提取那个值。你需要匹配主键!匹配ID和ID的唯一标识符-除非用户名是您的主键。我得到错误:注意:未定义的索引:C:\xampp2\htdocs\money.php中的user\u ID在第16行:Scause
user\u ID
不存在于
$\u SESSION
变量中,您必须用实际的索引替换它。像这样?:$\u SESSION['user\u ID'=$row['user_id'];我使用这个登录系统注意:未定义的索引:第16行C:\xampp2\htdocs\money.php中的电子邮件注意:第21行C:\xampp2\htdocs\money.php中尝试获取非对象的属性:Sdo页面顶部是否有
session_start();