我遇到了以下代码的问题:
$ids = '"' . implode('", "', $crumbs) . '"';
$motd = array();
$dober = $db->query("SELECT id, name, msg, datetime FROM tbl_depts td INNER JOIN tbl_motd tm ON td.id = tm.deptid WHERE td.id IN (" . $ids . ")");
while ($row = $dober->fetch_array()) {
$motd[] = $row;
}
print_r揭示了这一点:
Array
(
[0] => Array
(
[0] => 1
[id] => 1
[1] => Management
[name] => Management
[2] => New Management Rule!
[msg] => New Management Rule!
[3] =>
[datetime] =>
)
[1] => Array
(
[0] => 2
[id] => 2
[1] => Human Resources
[name] => Human Resources
[2] => DPS
[msg] => DPS
[3] =>
[datetime] =>
)
)
foreach ($motd[] as &$value) {
if ($motd['msg'] != "") {
if ($i == 0) {
?>
<li><a href="#" title="content_<?PHP echo $value['id']; ?>"
class="tab active"><?PHP echo $value['name']; ?></a></li>
<?
} elseif ($i == $len - 1) {
?>
<li><a href="#" title="content_<?PHP echo $value['id']; ?>"
class="tab"><?PHP echo $value['name']; ?></a></li>
<?PHP } else { ?>
<li><a href="#" title="content_<?PHP echo $value['id']; ?>"
class="tab"><?PHP echo $value['name']; ?></a></li>
<?
}
$i++;
}
}
关于我在这里做错了什么的想法?
编辑:如果您先阅读此内容,您可能会发现它更容易理解:Optimize this SQL query
解决方法:
首先 – 由于这两行,您的代码将无法工作:
foreach ($motd[] as &$value) {
if ($motd['msg'] != "") {
你应该在foreach中使用$motd,而不是$motd []并检查$value [‘msg’],而不是$motd [‘msg’]
其次,尝试使用MysqL_fetch_assoc而不是MysqL_fetch_array
第三 – $i没有初始值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。