从mysql数据库中的一行中获取数据

时间:2013-09-19 23:59:19

标签: php mysql mysqli

我需要在我的mysql表中的'feedback'字段中显示我的页面上的回复数据。我希望每个用户在每行存储不同的“反馈”响应,并在用户通过会话登录页面时获取。我已经设置了我的数据库,但发现很难形成php代码来查看我页面上的反馈...请有人帮忙../

       <?php
       session_start();

       if ($_SESSION['username'])
        {

       $con = mysqli_connect('localhost','root','');
       if (!$con)
        {
        die('Could not connect: ' . mysqli_error($con));
            }

        mysqli_select_db($con,"loginsession");
        $username = $_SESSION['username'];
        $sql="SELECT * FROM users WHERE username = $username";

        $result = mysqli_query($con,$sql);

        $feedback = mysql_query("SELECT feedback FROM users WHERE username='$username'");

        echo $feedback;


          }

       else 
    header("Location: index.php");  

      ?>

3 个答案:

答案 0 :(得分:6)

这种情况下的$ feedback不是字符串,它是一个mysql资源。您需要使用以下内容单独获取每一行:

echo "<PRE>";
while ($row = mysql_fetch_assoc($feedback)) {
    print_r($row);
}

此外,您应该通过mysql_real_escape_string()放置$ username,否则您的代码可能容易受到SQL injection attacks的攻击。

编辑:(免责声明)您正在使用的方法和我的建议已经过时,并且已经在php5.5中折旧了。我建议您查看prepared statements

答案 1 :(得分:1)

$sql = mysql_query("SELECT feedback FROM users WHERE username='{$username}' LIMIT 1");
$feedback = mysql_fetch_assoc($sql);
echo $feedback[0];

答案 2 :(得分:-1)

<?php
session_start();
if ($_SESSION['username'])
{
   $con = mysqli_connect('localhost','root','');
   if (!$con)
   {
        die('Could not connect: ' . mysqli_error($con));
   }
   mysqli_select_db($con,"loginsession");
   $username = $_SESSION['username'];
   $sql='SELECT feedback FROM users WHERE username = "'.$username.'"';
   $result = mysqli_query($con,$sql);
   while($row = mysqli_fetch_array($result))
   {
     echo $row['feedback'];
   } 
}
else 
  header("location: index.php");  
?>