Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Посчитать количество выбранных записей. и пронумеровать их по порядку 
:(
    Опции темы
andro_id
Дата 5.5.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Есть код, который делает выборку из БД, и выводит результат в таблицу. Как пронумеровать строки в результирующей таблице, начиная с 1?
Искал-искал на форуме, нашел, что надо использовать COUNT() и mysql_num_rows, но как это прикрутить сюда, так и не понял.
Код:
Код

<table border="1" width="100%" align="center">
<tr>
<th>№</th>
<th>Тип устройства</th>
<th>Модель устройства</th>
<th>Тип</th>
<th>Диагональ</th>
<th>Серийный номер</th>
<th>Место установки</th>
<th>Дата получения</th>
<th>Статус</th>
<th>Дата списания</th>
<th>Причина списания</th>
<th>Комментарии</th>
</tr>

<?php
$query = "SELECT * FROM " . TABLE_INVENTORY . " WHERE equipment_type = '" . $_POST['equip_type'] . "' AND device_type = '" . $_POST['device_type'] . "' ORDER BY device_model";
$inventory = mysql_query($query);
while($query_data = mysql_fetch_array($inventory)) {
    $id = $query_data["id"];
    $query = "SELECT * FROM " . TABLE_INVENTORY . " WHERE id = '$id'";
          $devices = mysql_query($query);
          while($query_data = mysql_fetch_array($devices)) {
            $device_type = $query_data["device_type"];
            $device_model = $query_data["device_model"];
            $monitor_type = $query_data["monitor_type"];
            $monitor_diagonal = $query_data["monitor_diagonal"];
            $device_serial = $query_data["device_serial"];
            $device_location = $query_data["device_location"];
            $device_date_receive = $query_data["device_date_receive"];
            $device_status = $query_data["device_status"];
            $device_date_spisan = $query_data["device_date_spisan"];
            $device_spisan_reason = $query_data["device_spisan_reason"];
            $device_comment = $query_data["device_comment"];
        }
          echo "<TR>\n";
          echo "<TD ALIGN=\"CENTER\">$num</TD>\n";          //здесь должен быть порядковый номер строки
          echo "<TD ALIGN=\"CENTER\">$device_type</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_model</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$monitor_type</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$monitor_diagonal</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_serial</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_location</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_date_receive</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_status</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_date_spisan</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_spisan_reason</TD>\n";
          echo "<TD ALIGN=\"CENTER\">$device_comment</TD>\n";
    }
?>
</TABLE><BR>
</body>
</html>

PM MAIL WWW ICQ Skype   Вверх
Всемогущий
Дата 5.5.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 2
Всего: 13



Код

  echo "<TD ALIGN=\"CENTER\">".++$iz."</TD>\n";          //здесь должен быть порядковый номер строки   


Добавлено через 1 минуту и 33 секунды
только есть одна проблемма : ваш код обрабатывает лишь одну строку из результата mysql


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
SelenIT
Дата 5.5.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Цитата(andro_id @  5.5.2007,  17:06 Найти цитируемый пост)
COUNT() и mysql_num_rows

здесь использовать не надо smile

Равно как и второй запрос в цикле. Что это вообще за ужас? Когда-нибудь база не простит такого насилия над собой...
Код

<table border="1" width="100%" align="center">
   <tr>
      <th>№</th>
      <th>Тип устройства</th>
      <th>Модель устройства</th>
      <th>Тип</th>
      <th>Диагональ</th>
      <th>Серийный номер</th>
      <th>Место установки</th>
      <th>Дата получения</th>
      <th>Статус</th>
      <th>Дата списания</th>
      <th>Причина списания</th>
      <th>Комментарии</th>
   </tr>
<?php
$query = "SELECT * FROM " . TABLE_INVENTORY . " WHERE equipment_type = '" . $_POST['equip_type'] . "' AND device_type = '" . $_POST['device_type'] . "' ORDER BY device_model";
$inventory = mysql_query($query);
$num = 1;
while($query_data = mysql_fetch_array($inventory)) {
?><tr>
     <td><?=$num++; /* вся "магия" здесь */ ?></td>
     <td><?=$query_data["device_type"]; ?></td>
     <td><?=$query_data["device_model"]; ?></td>
     <td><?=$query_data["monitor_type"]; ?></td>
     <td><?=$query_data["monitor_diagonal"]; ?></td>
     <td><?=$query_data["device_serial"]; ?></td>
     <td><?=$query_data["device_location"]; ?></td>
     <td><?=$query_data["device_date_receive"]; ?></td>
     <td><?=$query_data["device_status"]; ?></td>
     <td><?=$query_data["device_date_spisan"]; ?></td>
     <td><?=$query_data["device_spisan_reason"]; ?></td>
     <td><?=$query_data["device_comment"]; ?>
</tr><?
}
?>
</TABLE><BR>
</body>
</html>



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
andro_id
Дата 5.5.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Да уж. Я действительно написал ужас. Просто я только учусь. Спасибо, что поправили. Всё работает.

А есть ли принципиальная разница между "<?php" и "<?=" , или просто так короче?
PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 5.5.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



<?=... - это сокращенная запись для <?php echo ...

Она может не работать, если в php.ini отключена опция short_open_tag (очень редко такое делается, например, для совместимости с XML-файлами - на практике я не сталкивался). Насколько мне известно, это единственное отличие и ограничение такой записи.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
andro_id
Дата 5.5.2007, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Спасибо всем. Будем учить дальше.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1820 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.