我是 PHP 和 Mysql 的新手,我正在为我的作业编写购物网站,
我已启动并运行我的登录、注册和数据库,现在我正处于需要创建我的用户个人资料页面的阶段,该页面需要从数据库中提取数据,
首先我让这段代码正常工作,因为它会从我的表中提取所有内容,
<?php
$sql = 'SELECT * from assignment2';
$result = $conn->query($sql);
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
if(count($result)) {
echo '<table><tr>';
//Heading
foreach ($rows[0] as $columnName => $value) {
echo '<th>' . $columnName . '</th>' ;
}
echo '</tr>';
foreach ($rows as $row) {
echo '<tr>';
foreach ($row as $value) {
echo '<td>' . $value . '</td>';
}
echo '<tr>';
}
echo '</table>';
}
?>
但我的问题是如何让它只拉出与登录 session 匹配的那个
这是我的 session 代码
<?php
session_start();
require '../ppuyakul/php/db_conn.php';
if( isset($_SESSION['user_id']) ){
$records = $conn->prepare('SELECT id,username,password FROM assignment2 WHERE id = :id');
$records->bindParam(':id', $_SESSION['user_id']);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$user = NULL;
if( count($results) > 0){
$user = $results;
}
}
?>
非常感谢,期待一些不错的答案^^"
最佳答案
只需扩展您的 sql 查询 ($sql = 'SELECT * from assignment2';
) 并使用 WHERE 检查 if id = $_SESSION['user_id'] ($sql = 'SELECT *来自 assignment2 WHERE id = '.$_SESSION['user_id'];
)
//foreach
$sql = 'SELECT * from assignment2 WHERE id = '.$_SESSION['user_id'];
$result = $conn->query($sql);
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
if(count($result)) {
echo '<table><tr><th>Id</th><th>Fullname</th><th>Username</th></tr>';
foreach ($rows as $row) {
echo '<tr>';
echo '<td>'.$row["id"].'</td>';
echo '<td>'.$row["fullname"].'</td>';
echo '<td>'.$row["username"].'</td>';
echo '<tr>';
}
echo '</table>';
}
关于php - 打印出登录用户数据匹配登录SESSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041340/