我想上传和获取 登录用户的数据,如 Facebook 和 Twitter 。这是我的代码所做的,它会在登录后检索不同用户发布的所有图像。请帮助我。我想要的是如果用户登录,个人资料页面应该只获取登录用户的数据而不是所有用户数据以及如何在mysql中为用户插入图像值。
这是我的SQL tabeles用户和帖子
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`first_name` varchar(50) NOT NULL,
`username` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
`hash` varchar(32) NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT '0',
`image` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
发布SQL
CREATE TABLE `posts` (
`id` int(11) NOT NULL,
`userid` int(11) NOT NULL,
`image` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
这是 Profile.php
中的php代码 <?php
session_start();
include 'ssql.php';
require 'db.php';
// Check if user is logged in using the session variable
if ( $_SESSION['logged_in'] != 1 ) {
$_SESSION['message'] = "You must log in before viewing your profile page!";
header("location: error.php");
}
else {
// Makes it easier to read
$first_name = $_SESSION['first_name'];
$username = $_SESSION['username'];
$email = $_SESSION['email'];
$active = $_SESSION['active'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" width="device-width">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="fcb.css" />
<link rel="stylesheet" type="text/css" href="css/font-awesome.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var flag = 0;
$.ajax({
type: "GET",
url: "get_data.php",
data: {
'offset':0,
'limit' :10
},
success: function(data){
$('#post1').html(data);
flag += 10
}
});
$(window).scroll(function() {
if($(window).scrollTop() >= $(document).height() - $(window).height()) {
$.ajax({
type: "GET",
url: "get_data.php",
data: {
'offset': flag,
'limit' : 10
},
success: function (data) {
$('#post1').append(data);
flag += 10;
}
});
}
});
});
</script>
<body>
<div id="post1">
</div>
</body>
这是数据库 db.php
<?php
/* Database connection settings */
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'accounts';
$mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);
以下是帖子 ssql.php
上传的代码<?php
if (isset($_POST['update'])){
header('Location:profile.php');
$target = "images/".basename($_FILES['image']['name']);
$db = mysqli_connect("localhost", "root", "", "accounts");
$image = $_FILES['image']['name'];
$data = mysqli_query($db, "SELECT `id` FROM `user`");
$sql = "insert into posts (userid, image) values ('$userid', '$image')";
mysqli_query($db, $sql);
if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
} else {
}
}
?>
这是 get_data.php 来检索图片
<?php
session_start();
include_once("db.php");
include_once("ssql.php");
if(isset($_GET['offset']) && isset($_GET['limit'])){
$limit = $_GET['limit'];
$offset = $_GET['offset'];
$db = mysqli_connect('localhost', 'root', '', 'accounts');
$data = mysqli_query($db, "SELECT `image` FROM `posts` ORDER BY `id` DESC LIMIT {$limit} OFFSET {$offset} ");
while($row = mysqli_fetch_array($data)) {
echo "<div id='post1'>";
echo "<img src='images/".$row['image']."' >";
echo "</div>";
}
}
?>
请帮帮我。我想要的是如果用户登录,个人资料页面应该只获取登录用户的数据而不是所有用户数据以及如何在mysql中为用户插入图像值。
答案 0 :(得分:0)
您需要在查询中添加用户ID的条件,如下所示:
$data = mysqli_query($db, "SELECT `image` FROM `posts` WHERE userid={$loggedInUserId} ORDER BY `id` DESC LIMIT {$limit} OFFSET {$offset} ");