Фильтрация результатов на странице, относящейся к параметру id - PullRequest
0 голосов
/ 26 января 2010

Я использую 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';
}

Но он читает весь массив. Я хочу только отобразить arraylines с определенным значением idnavcat. Как это может быть сделано ? Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 27 января 2010

Я не понимаю, что вы хотите сделать. Если я прав, вы хотите реализовать структуру разрыва кода.

Сначала нужно отсортировать запрос по 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)); ?>

Но, кстати, так как этот способ программирования более или менее безобразен, мы должны рассмотреть возможность использования SMARTY или любой системы шаблонов для форматирования результатов нашего исходного кода, чтобы иметь возможность быстро изменять его, не затрагивая при этом большую функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...