2012-02-10 89 views
1

我有一個MySQL數據庫充分的用戶信息,如他們的用戶名,密碼,電子郵件等顯示MySQL數據庫作爲數組

我想一個PHP腳本,讓我拉只是他們的用戶名,並顯示它像所以:

「用戶名1」, 「用戶名2」, 「USERNAME3」

字面上完全一樣,報價和所有。

編輯:對不起,不提供足夠的信息。

表被命名爲「用戶」的領域我想拉斷它是「用戶名」我可以把它拉和顯示的所有信息,我唯一的問題是它的內爆。

+3

這是功課嗎? – Vyktor 2012-02-10 15:36:55

+0

男人,你真的需要提供表的名字,MySQL中的數據不是存儲在數據庫中,而是以數據庫內表中的行的形式存在。 :) – hijarian 2012-02-10 15:37:03

+0

不,這不是作業,它只是我爲了樂趣而做的。 但抱歉沒有提供所有信息。 我所需要的只是讓你爲我感到內疚,因爲我似乎無法得到它。 以下是我的$結果,您可以使用: $ result = mysql_query(「SELECT username FROM users」); – unlucky4ever 2012-02-10 15:38:10

回答

3

OK花花公子,閱讀評論

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

?> 
+0

非常感謝,我是PHP新手,所以這對我來說都是全新的,謝謝幫助我,我希望能夠學到更多! – unlucky4ever 2012-02-10 15:43:27

+0

嘿,別擔心......我們都是你曾經的地方! :)我相信你很快就會成爲專家!只是閱讀評論,我試圖儘可能有幫助。如果您有任何疑問,請點擊這裏,或者通過twitter @ tclayson與我聯繫。 – 2012-02-10 15:45:33

0

你可以使用PHP的implode,但它可能更容易做它的SQL假設該列表將不會太長:

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

假設你有一個'mydb'數據庫和'users'表。需要

SQL:

USE mydb; 
SELECT username from users; 

短版:

  1. 裹在PHP中調用mysql PHP library
  2. 獲取結果作爲數組,那麼implode它用逗號象徵。

龍版本:

首先,我們需要連接到數據庫:

$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做,只是關閉數據B使用後立即ASE連接:

mysql_close($db); 

祝你好運與學習PHP,BTW。 ;)

2

我見過的所有其他的答案,但有你使用PDO來代替的mysql_query功能的考慮?這是使用數據庫更好的方法。

這裏是你想在幾行代碼來實現(使用蘭巴功能)什麼:

$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函數。祝你好運。

+1

哇,'array_map' ...這是在PHP中做事情的很酷的方式,感謝提醒。 :) – hijarian 2012-02-10 16:08:42

+0

而且我想,我們都會隨着無論打印什麼圖書館而跳入答案。 :) – hijarian 2012-02-10 16:10:43

+0

@hijarian - 尤普斯,它很時髦。我儘可能地使用它。請記住:匿名功能只能從5.3開始使用。而PDO通常默認安裝在PHP中。 :-) – Flukey 2012-02-10 16:15:53