Tôi đang chạy vào các vấn đề với đoạn mã sau:Vấn đề với mảng
$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;
}
Một print_r tiết lộ này:
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] =>
)
)
Như vậy, tôi không thể sử dụng mã này để tạo điều:
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++;
}
}
Bất kỳ ý tưởng nào về những gì tôi đang làm sai ở đây?
EDIT: bạn có thể tìm thấy nó dễ dàng hơn để hiểu nếu bạn đọc này đầu tiên: Optimize this SQL query
lưu ý rằng mã này dễ bị tấn công bằng cách tiêm sql. –
Cũng giống như một sidenote ... có thể 'fetch_assoc()' (http://www.php.net/manual/de/mysqli-result.fetch-assoc.php) phù hợp hơn với nhu cầu của bạn? – pinkgothic
Tôi có thể bỏ lỡ một cái gì đó, nhưng bạn nên đặt '$ i = 0;' trước 'foreach', và bạn không cần' [] 'sau' $ motd' ở đó. – kapa