如何使用PHP从数据库中检索数据?

时间:2012-02-10 12:23:15

标签: php database

我在使用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);
?>

5 个答案:

答案 0 :(得分:2)

替换

$rows[] = $r;

使用

$rows[] = $r['Bez'];

...虽然说实话,我会用以下内容替换整个“fetch”部分:

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

那是因为mysql_fetch_row通常比mysql_fetch_assoc更快。

答案 1 :(得分:0)

替换

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

用这个:

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

答案 2 :(得分:0)

改为使用mysql_fetch_row()(或mysql_fetch_array($result, MYSQL_NUM);)。它获取一个数值数组,因此不显示列名。

然后,您的输出将如下所示:

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

答案 3 :(得分:0)

删除json_encode部分:

echo json_encode ($ rows); ?&GT;

并使用bez作为行键:

echo($ rows ['bez']); ?&GT;

答案 4 :(得分: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"}]

但它看起来像:

[{"12","19","blabla","blabla"}]