如何将图像上传到登录用户并获取用户图像PHP MYSQL

时间:2017-06-12 09:27:39

标签: php mysql

我想上传获取 登录用户的数据,如 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中为用户插入图像值。

1 个答案:

答案 0 :(得分:0)

您需要在查询中添加用户ID的条件,如下所示:

$data = mysqli_query($db, "SELECT `image` FROM `posts` WHERE userid={$loggedInUserId} ORDER BY `id` DESC LIMIT {$limit} OFFSET {$offset} ");