过滤与id参数相关的页面结果

时间:2010-01-26 19:39:03

标签: php mysql

我使用SELECT来获取表tblnavigation中的所有行。 行是:idnav,idnavcat,prognav,progurl

$ rsnav = mysql_query($ query_rsnav,$ concat)或die(mysql_error()); $ row_rsnav = mysql_fetch_assoc($ rsnav);

idnavcat代表导航类别。现在我想过滤那个“idnavcat”;并在表格中显示每个类别的结果。

        <?php do { ?>
        <tr>
          <td width="10%"><div align="center"><?php echo $row_rsnav['idnav']; ?></div></td>
          <td width="70%"><?php echo $row_rsnav['navprog']; ?></td>
          <td width="11%"><a href="nav_adj.php?id=<?php echo $row_rsnav['idnav']; ?>"><img src="images/edit.png" alt="" width="32" height="32" border="0" /></a></td>
          <td width="8%"><p><a href="nav_del.php?id=<?php echo $row_rsnav['idnav']; ?>"><img src="images/delete.png" alt="" width="32" height="32" /></a></p>              </td>
        </tr>
        <?php } while ($row_rsnav = mysql_fetch_assoc($rsnav)); ?>

我知道有多种选择可能;但我知道它慢了。 与“同时做”有关吗?还是阵列?不确定;新来的! : - )


我走到一个阵列;并通过foreach循环读出来。

while ($row_rsprog = mysql_fetch_array($rsprog)) {
  $data[$row_rsprog['idprog']] = array(
'idprog' => $row_rsprog['idprog'],
'progtitel' => $row_rsprog['progtitel'],
'idnavcat' => $row_rsprog['idnavcat']
);
}

我用以下内容阅读:

foreach ($data as $id => $va){
echo 'blablabla';
}

但它读取整个数组。 我只想显示具有特定idnavcat值的arraylines。 如何才能做到这一点 ? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我不确切地知道你想做什么。如果我是对的,你想要实现一个代码中断结构。

首先,您需要通过idnavcat对查询进行排序,并尝试执行如下代码:

<?php

[...]

$query = "SELECT * FROM tblnavigation ORDER BY idnavcat;"; 

[...] // you execute the query here and do the rest of the stuff


// fetch the row
$row_rsnav = mysql_fetch_assoc($rsnav);
// stablish a default current category to force headers to be written
$current_category = -1;
do {

    if ($current_category != $row_rsnav['idnavcat']) 
    {
        $current_category = $row_rsnav['idnavcat'];

        // print headers (for example)
        ?>
        <tr>
          <td width="10%">ID NAV</td>
          <td width="70%">NAV PROG</td>
          <td width="19%" colspan="2">CATEGORY: <?php echo $current_category ?></td>
        </tr>
        <?
    }
?>
    <tr>
      <td width="10%"><div align="center"><?php echo $row_rsnav['idnav']; ?></div></td>
      <td width="70%"><?php echo $row_rsnav['navprog']; ?></td>
      <td width="11%"><a href="nav_adj.php?id=<?php echo $row_rsnav['idnav']; ?>"><img src="images/edit.png" alt="" width="32" height="32" border="0" /></a></td>
      <td width="8%"><p><a href="nav_del.php?id=<?php echo $row_rsnav['idnav']; ?>"><img src="images/delete.png" alt="" width="32" height="32" /></a></p></td>
    </tr>
<?php } while ($row_rsnav = mysql_fetch_assoc($rsnav)); ?>
但是BTW,因为这种编程方式或多或少是丑陋的,我们应该考虑使用SMARTY或任何模板系统来格式化源代码的结果,以便能够快速修改它而不会影响很多功能。