发布后显示用户名(php / mysql)

时间:2017-01-12 09:17:53

标签: php mysql sql session-variables

我正在开发一个小型社区页面,用户可以在其中发布新闻,图片和评论。我遇到的问题是,每当用户发布条目时,我当然希望在条目旁边显示用户名。 我在这里使用多个表,一个存储用户信息,一些存储条目信息(新闻,评论,图片)。 现在每当用户发布一些内容时,我想从表USER中获取他的用户ID,这样我就可以在我的表中插入一个新行(在本例中)NEWS,它希望将值Text,Title和U_ID作为外键。 我正在使用会话,因为我只是显示登录用户的名字没有问题,我试图使用该用户选择"他的"表中的行并将结果放入一个变量($ uid)中,我希望在INSERT INTO的另一个查询中使用该变量。但是,根据我得到的错误消息,我的第一个查询出了问题。有人可以帮忙吗?

<?php
include("dbconnect.php");

session_start();

        if (isset($_SESSION['user'])) {
           $user = $_SESSION['user'];

        $sqluser = "SELECT FROM USER USER_ID
                    WHERE Name = '$user'";

        $userresult = $conn->query($sqluser)  or die($conn->error);

        while($row = $userresult->fetch_assoc()){
             $uid = $row["USER_ID"];
            }
        } else {

             header('Location: login.php');
        }

        if (isset($_POST["title"], $_POST["text"])) {
            $title = mysqli_real_escape_string($conn, $_POST["title"]);
            $text = mysqli_real_escape_string($conn, $_POST["text"]);
            $sql = "INSERT INTO NEWS (Titel, Text, U_ID) 
                    VALUES ('$title', '$text', '$uid')";
            }
    $conn->close();
 ?>

1 个答案:

答案 0 :(得分:2)

我认为您的查询中存在错误

 $sqluser = "SELECT FROM USER USER_ID WHERE Name = '$user'";

应该是这样的

 $sqluser = "SELECT USER_ID FROM USER WHERE Name = '$user'";