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