2011-08-16 23 views
0

试图在数据库中搜索一列,并提取男性总人数和女性总人数。共计一列中有多少名男性和多少名女性。可能为了重新填充星球

该数据在whatsex列中作为f和m存储在db中。

$query = "SELECT whatsex, COUNT(*) FROM soberdata GROUP BY whatsex"; 
    $result = mysqli_query($connection,$query) or die(mysql_error()); 
    $sexdb = mysqli_fetch_array($result); 
    $totalmale = $sexdb['m']; 
    $totalfemale = $sexdb['f']; 
    echo $totalfemale." & ".$totalmale; 

此代码不输出任何内容。我究竟做错了什么?

回答

0

$ sexdb只有“whatsex”和“COUNT(*)”列。你应该使用它们

的一个尝试

print_r($sexdb); 

和看,如果一些成果的满足您的需求

0

您的查询将返回一个whatsex值和一个COUNT(*)值,而不是mf。做一个var_dump($sexdb)会告诉你阵列中有什么。

+0

该死的,在我之前一秒:/ GL! – genesis

+0

感谢您的帮助 - 当我通过phpmyadmin运行SQL时,它给了我一张表 12 f 2 m 如何使用var_dump将它转换为php变量? – bigonroad

+0

mysql_fetch_array函数返回一个使用您查询的列名键控的数组。就像我说的那样,执行'var_dump($ sexdb)'在你运行查询之后,你会看到数组键的使用。 –

0

您处理多维数组平。你可以这样做是为了将其压平

$query = "SELECT whatsex, COUNT(*) as total FROM soberdata GROUP BY whatsex"; 

while ($row = mysqli_fetch_array($result)) { 
    $$row['whatsex'] = $row['total']; // this makes a variable ($m or $f) using the value of the row 
} 

$totalmale = !empty($m) ? $m : 0; 
$totalfemale = !empty($f) ? $f : 0; 

你应该清空检查分贝的结果的情况下,没有男性或女性的条目,以避免发生错误。

+0

有没有办法做查询,会给我一个平面数组? – bigonroad

+0

在moodle中的开源函数可以在这里找到https://github.com/moodle/moodle/blob/MOODLE_19_STABLE/lib/dmllib.php只是搜索功能recordset_to_menu – matthewdaniel

+0

这不会工作... $ sexdb ['m']'无效,因为'm'不是索引值。 – Fosco

相关问题