1

我正在尝试进行查询以输出特定事件的参赛者人数。该表名为“payments”,事件的 ID 在“itemid”列中。这是我创建的,但它似乎在浏览器中不起作用,但在 phpMyAdmin 中运行良好。每次我加载页面而不是看到数字时,我都会看到“数组”作为查询的输出。

解决它:

$res = mysql_query("SELECT COUNT(*) AS entrants FROM payments WHERE itemid='Sample Event 1'") or die();
$row = mysql_fetch_array($res,MYSQL_ASSOC);

<?php echo $row['entrants']; ?>
4

5 回答 5

10

你不断得到一个数组,因为你用这个来获取它:

mysql_fetch_array($entrant_query);

fetch_array 函数会将行作为数组返回。

还有许多其他方法可以从数据库中返回一行 - 虽然我猜你正在寻找的是fetch_row

您可以尝试var_dump来查看您返回的内容。

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

// output:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

最后,这些mysql_*函数已被弃用,您可能希望改为考虑迁移到PDO。它更安全、更灵活,如果您刚刚开始,这是一个更好的学习选择。

于 2012-08-15T14:10:54.920 回答
2

请检查文档

mysql_fetch_array($query);

http://pa.php.net/manual-lookup.php?pattern=mysql_fetch_array%28%29&scope=quickref

也尝试做这个代码

$f1 = mysql_fetch_array($entrant_query);
//this will  give u the print out of the associative array:
printr($f1);
//you can now access  each variable of the associative array by
//where the associative that prinr output
foreach($f1 as $value){
 echo $value;
}
于 2012-08-15T14:29:23.560 回答
1
include ("includes/db.php");
// Get data from the database for content
$res = mysql_query("SELECT COUNT(*) AS entrants FROM payments WHERE itemid='Sample Event 1'") or die();
$row = mysql_fetch_array($res,MYSQL_ASSOC);

<?php echo $row['entrants']; ?>

现在工作正常。

于 2012-08-15T14:35:02.823 回答
1

该方法mysql_fetch_array()将查询结果加载到一个数组中,然后您可以使用该数组来访问您的数据。您可以遍历数组以提取所有数据,也可以直接访问特定数据。

于 2012-08-15T14:12:12.987 回答
1

即使您的查询是返回记录数并返回 1 个字段,您也正在调用该函数mysql_fetch_array,因此它只返回该行中包含的字段的数组。

通常,如果你这样做了SELECT * from users,你会不断地转来转去,直到没有更多的行,然而,仅仅因为你的查询返回 1 个字段,它只是一个 1 的数组,因为它就是这样工作的。

于 2012-08-15T14:12:16.987 回答