2012-02-10 68 views
2

我在使用PHP語句從數據庫中檢索數據時遇到了問題。目前輸出如下:如何使用PHP從數據庫檢索數據?

[{"Bez":"Cino"},{"Bez":"Extra"},{"Bez":"Panini"},{"Bez":"And so on"}] 

「Bez」是列的標籤,我們不希望它被顯示。我們只是想顯示單元格的內容,所以它應該是這樣的:

[Cino,Extra,Panini,And so on] 

的PHP是:

<?php 
    $username = "root"; 
    $database = "kaffeehaus"; 
    mysql_connect('localhost', $username); 
    @mysql_select_db($database) or die("Geht nicht!"); 

    $query = "SELECT Bez FROM kategorie"; 
    $result = mysql_query($query) or die(mysql_error("error")); 
    $num = mysql_numrows($result); 

    mysql_close(); 

    $rows = array(); 
    while ($r = mysql_fetch_assoc($result)) 
    { 
    $rows[] = $r; 
    } 

    echo json_encode($rows); 
?> 

回答

2

更換

$rows[] = $r; 

隨着

$rows[] = $r['Bez']; 
while($r = mysql_fetch_row($result)) 
    $rows[] = $r[0]; 

這是因爲和mysql_fetch_row通常比mysql_fetch_assoc快:...雖然說實話,我會用更換整個「取」的一部分。

+0

非常感謝你。它的工作就像它應該;)。 CI – user1201884 2012-02-10 12:59:54

0

更換

while ($r = mysql_fetch_assoc($result)) { $rows[] = $r; }

與此:

while ($r = mysql_fetch_array ($result, MYSQL_ASSOC)) { $rows[] = $r['Bez']; }

0

使用mysql_fetch_row()代替(或mysql_fetch_array($result, MYSQL_NUM);)。它提取一個數值數組,所以列名不顯示。

然後,你的輸出就會是這個樣子:

[{"0":"Cino"},{"1":"Extra"},{"2":"Panini"},{"3":"And so on"}] 
0

刪除json_encode部分:

呼應json_encode($行); ?>

而使用BEZ爲行密鑰:

回波($行[ 'BEZ']); ?>

0

它是如何工作的,如果有多個單元?

我們的PHP看起來像

<?php 
$username = "root"; 
$database = "kaffeehaus"; 
mysql_connect('localhost', $username); 
@mysql_select_db($database) or die("Geht nicht!"); 

$ID_Kategorie = $_GET["Kategorie"]; 

$query = "SELECT * FROM artikel WHERE ID_Kategorie=$ID_Kategorie"; 


$result=mysql_query($query) or die("error"); 
$num = mysql_numrows($result); 

mysql_close(); 

$rows = array(); 
while ($r = mysql_fetch_assoc($result)) 
{ 
    $rows = $r; 

} 
echo json_encode($rows); ?> 

而像輸出:

[{"ID_Artikel": "12","ID_Kategorie":"19","Bez":"blabla","Beschreibung":"blabla"}] 

但schould樣子:

[{"12","19","blabla","blabla"}] 
相關問題