将MySQL数据库显示为数组


Display MySQL Database as an array

我有一个MySQL数据库,里面装满了用户信息,比如他们的用户名、密码、电子邮件等。

我想要一个PHP脚本,它允许我提取他们的用户名,并像这样显示:

"用户名1"、"用户名2"answers"用户名3"

从字面上看就是这样,引用等等。

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

该表名为"users",我想提取的字段是"username",我可以让它提取并显示所有信息,我唯一的问题是内爆它。

好吧,伙计,阅读评论

<?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
?>

我已经看到了所有其他答案,但是您是否考虑过使用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函数。祝你好运。

假设您有一个"mydb"数据库和"users"表。

需要SQL:

USE mydb;
SELECT username from users;

简称:

  1. 将其封装在对mysqlPHP库的PHP调用中
  2. 将结果作为一个数组,然后用逗号符号将其内爆

长版本:

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

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

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

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