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

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

问题描述:

I am trying to view all the values of a certain field as long as the username='entered username'. My problem is that I can only do this in a while loop and print out the result within the while loop, so I can't use the results outside the while loop. Is there any other way to do this? Here is my current code.

    $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();

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

  $ 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  (); 
  code>  pre> 
  div>

You can do as below :

$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();

  • Your query will return an error if $username contains a single quote (solution: escape it or use PDO)
  • Your query will have serious security problem if $username comes from a user input (solution again: escape it properly or, better, use PDO)

You can store your results in an array.

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

try this to print all 'message' results

$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();