将MySQL数据库显示为数组

时间:2012-02-10 15:35:11

标签: php mysql database arrays

我有一个MySQL数据库,其中包含用户信息,如用户名,密码,电子邮件等。

我想要一个PHP脚本,它允许我拉取他们的用户名并显示如下:

“USERNAME1”, “用户名2”, “USERNAME3”

完全相同,引号和所有。

编辑:很抱歉没有提供足够的信息。

该表被命名为“users”我要删除的字段是“用户名”我可以将其拉出并显示所有信息,我唯一的问题就是爆炸了。

4 个答案:

答案 0 :(得分:5)

好的伙计,阅读评论

<?php // open a php tag

$dbc = mysql_connect("host", "username", "password"); // connect to database
mysql_select_db("db_name", $dbc) // select the database

$sql = "SELECT `username` FROM `users_table`"; // select only the username field from the table "users_table"
$result = mysql_query($sql); // process the query

$username_array = array(); // start an array

while($row = mysql_fetch_array($result)){ // cycle through each record returned
  $username_array[] = "\"".$row['username']."\""; // get the username field and add to the array above with surrounding quotes
}

$username_string = implode(",", $username_array); // implode the array to "stick together" all the usernames with a comma inbetween each

echo $username_string; // output the string to the display

?>

答案 1 :(得分:2)

我已经看到了所有其他答案,但您是否考虑过使用PDO而不是mysql_query函数?这是一种使用数据库的更好方法。

以下是您想要在几行代码中实现的内容(使用lamba函数):

 $dbh = new PDO("mysql:host=localhost;dbname=test", "yourusername", "yourpassword");
 $results = $dbh->prepare("SELECT u.username FROM users u");
 $results->execute();
 $results = $results->fetchAll();
 echo implode(", ", array_map(function(&$r) { return $r['username']; }, $results));

输出:Jamie, Bob, Chris 干净整洁。此外,您应该检查是否有任何已返回的结果以及查询是否成功。

只是另一种方法。

编辑:我刚刚意识到你是初学者,所以我的回答可能有点过于先进。但是,我会留给其他人看作是一个解决方案,也许你可能会在学习更多东西时考虑使用PDO lamba函数。祝你好运。

答案 2 :(得分:1)

假设你有一个'mydb'数据库和'用户'表。

需要SQL:

USE mydb;
SELECT username from users;

简短版本:

  1. 将其包含在对mysql PHP library
  2. 的PHP调用中
  3. 以数组形式获取结果,然后使用逗号符号implode获取结果。
  4. 长版:

    首先我们需要连接到数据库:

    $db = mysql_connect('DATABASE_HOST', 'USER', 'PASSWORD');
    if (!$db) {
        die('Not connected : ' . mysql_error());
    }
    
    $db_selected = mysql_select_db('mydb', $db);
    if (!$db_selected) {
        die ('Can\'t use mydb: ' . mysql_error());
    }
    

    请记住始终检查函数的返回值。

    然后我们查询数据库:

    $result = mysql_query('select username from users', $db);
    

    ...并获取平面数组中的结果(我们只需要用户名):

    while ($row = mysql_fetch_array($result, MYSQLI_ASSOC))
    {
        $data[] = $row['login'];
    }
    

    然后我们根据您的规范格式化返回的数据:

    $string_result = '"'. implode('", "', $data) . '"';
    

    您可以使用$string_result任意内容,只需在使用后立即关闭数据库连接:

    mysql_close($db);
    

    学习PHP,BTW祝你好运。 ;)

答案 3 :(得分:0)

你可以使用PHP的implode,但是在SQL中假设列表不会太长可能更容易:

SELECT GROUP_CONCAT(CONCAT('"', username, '"')) AS usernames
FROM your_table