这是我的问题:
$query = "SELECT last_name, first_name, DOB, site, COUNT(*) AS Num FROM student "
. "WHERE site = '{$siteRow['site']}' "
. "GROUP BY last_name, first_name, DOB having Num > 1";
当我在MySQL客户端上运行它时,我得到了相应的行。 last_name
,first_name
,DOB
,site
和Num
但是,当我尝试执行此操作(并使用var_dump
进行测试)至php
时,我会得到相同的五个字母;但在每个字母之前,我得到0
,1
,2
,3
和4
- 每个都与上面列出的5列相对应。
以下是php
:
$result = $DB->query($query);
$cnt = $DB->count($result);
if ($cnt > 0) {
while ($row = $DB->fetch_array($result)) { // solved; issue here!
if (!in_array(strtolower(trim($row['site'])), $dup_student_sites)) {
$records[] = $row;
$dup_student_sites[] = strtolower(trim($row['site']));
$dupCount++;
}
}
}
var_dump($records); // tested here to see result with row numbers
这是var_dump(部分)的输出:
array(111) {
[0] =>
array(10) {
[0] =>
string(7) "---"
's_s_last_name' =>
string(7) "---"
[1] =>
string(4) "---"
's_s_first_name' =>
string(4) "---"
[2] =>
string(10) "2003-03-20"
's_s_DOB' =>
string(10) "2003-03-20"
[3] =>
string(8) "---"
's_s_site' =>
string(8) "---"
[4] =>
string(1) "2"
'Num' =>
string(1) "2"
}
答案 0 :(得分:3)
我通常不会给出如此淡化的答案,但是:
可能的问题是$DB->fetch_array
可能的解决方案是将其更改为$DB->fetch_assoc
<强>解释强>
与此答案相同: