显示具有相同第一个值的多个行

时间:2015-09-03 10:31:21

标签: php mysql

我试图查看某个字段的所有值,只要username='entered username'。我的问题是我只能在while循环中执行此操作并在while循环中打印出结果,因此我无法在while循环之外使用结果。有没有其他方法可以做到这一点?这是我目前的代码。

    $query = mysql_query("SELECT * FROM databse WHERE username='$username'");
    $numrows = mysql_num_rows($query);

    while ($row = mysql_fetch_assoc($query)){

        $message= $row['message'];

        print_r ($message);

    }
    mysql_close();

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

$query = mysql_query("SELECT * FROM databse WHERE username='$username'");
$numrows = mysql_num_rows($query);
$result = array();
while ($row = mysql_fetch_assoc($query)){
    $result[] = $row;
}
print_r ($result);
mysql_close();

答案 1 :(得分:0)

  • 如果$username包含单引号(解决方案:转义它或使用PDO),您的查询将返回错误
  • 如果$username来自用户输入,您的查询会出现严重的安全问题(解决方案:正确转义,或者更好地使用PDO)

您可以将结果存储在数组中。

$messages = array();
while ($row = mysql_fetch_assoc($query)){
    $messages[] = $row['message'];
}
print_r($messages);

答案 2 :(得分:0)

尝试此操作以打印所有'消息'结果

$query = mysql_query("SELECT * FROM databse WHERE username='$username'");
$numrows = mysql_num_rows($query);
$datas = array();
while ($row = mysql_fetch_assoc($query)){
    $message= $row['message'];
    $datas[] = $message;
}
print_r ($datas);
mysql_close();