我有一个MySQL数据库,其中包含用户信息,如用户名,密码,电子邮件等。
我想要一个PHP脚本,它允许我拉取他们的用户名并显示如下:
“USERNAME1”, “用户名2”, “USERNAME3”
完全相同,引号和所有。
编辑:很抱歉没有提供足够的信息。
该表被命名为“users”我要删除的字段是“用户名”我可以将其拉出并显示所有信息,我唯一的问题就是爆炸了。
答案 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;
简短版本:
长版:
首先我们需要连接到数据库:
$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