我目前正在使用 foreach 循环管理 HTML 中 MySQL 内容的显示,如下所示:
<?php
echo "<table class=\"tableau\">
<tr bgcolor=\"#a72333\" class=\"first\">
<th>Repere</th>
<th>Niveau</th>
<th>Enseigne</th>
<th>Activités</th>
</tr>
<tbody>";
$db= JFactory::getDBO();
$query = 'SELECT baseData, sid, fid FROM XXXX_sobipro_field_data';
$db->setQuery($query);
$results = $db->loadObjectList();
foreach ($results as &$value) {
if ($value->sid == 55) {
if ($value->fid == 20) {
$repere = $value->baseData;
}
if ($value->fid == 16) {
$level = $value->baseData;
}
if ($value->fid == 22) {
$title = $value->baseData;
}
if ($value->fid == 17) {
$activity = $value->baseData;
}
if ($value->fid == 21) {
$display = $value->baseData;
}
}
[...]
// It ends at if ($value->fid == 83)
}
所以我将变量命名为 $title_NUM
, $activity_NUM
, ...,其中 _NUM
是一个以“nothing”开头的数字",它现在以 24 结束,但如果我的表中有更多数据,它可能会更多。
获取数据后,我会像这样显示 html:
if ($display == 1) {
echo "<tr bgcolor=\"#eaeaeb\">
<td valign=\"top\">".$repere."</td>
<td align=\"top\">".$level."</td>
<td valign=\"top\"><a data-lightbox=\"width:600;type:iframe;\" href=\"LINK\">".$title."</a></td>
<td align=\"top\">".$activity."</td>
</tr>";
}
这里也发生了同样的情况,我“手动”显示 html 的每个链接,O 没有任何循环来完成这项工作。
有没有办法只用循环来完成这项工作?
最佳答案
到目前为止我的理解是你有
$title1
, $title2
, $title3
, ...
你想为它做循环
看这个例子
<?php
for($i=0;$i<=8;$i++)//note it start from 0 to 8
${'test'.$i}=5*$i;
$test9=5*9;
echo "let's test <br/>";
echo $test0.'<br/>';
for($i=1;$i<=9;$i++)//note it start from 1 to 9
echo ${'test'.$i}.'<br/>';
?>
关于php - PHP 和 Joomla 中的 Foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376027/