微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 数组问题

我遇到了以下代码的问题:

$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 举报,一经查实,本站将立刻删除。

相关推荐