0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
1

Сокращение кода вывода таблицы на экран

23.01.2016, 15:49. Показов 1402. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, я из базы данных вывожу на экран таблицу в тегах <table>,<th>,<tr>... и т.д., но для каждого поля мне нужно отдельное echo создавать, возможно ли как то вывести, чтоб он сам создавал новое echo для новых столбцов и строчек из БД?

Вот мой кодик:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
    // Соединиться с сервером БД
    mysql_connect("localhost", "root", "") or die (mysql_error ());
 
    // Выбрать БД
    mysql_select_db("ejornal") or die(mysql_error());
 
    // SQL-запрос
    $strSQL = "SELECT * FROM pupilname  ";
 
    // Выполнить запрос (набор данных $rs содержит результат)
    $rs = mysql_query($strSQL);
    echo '<table border="1">';
    echo '<tr><td></td><td></td><td></td><td></td></tr>';
    echo '<thead>';
  echo '<tr>';
  echo '<th>Номер</th>';
  echo '<th>Фамилия</th>';
  echo '<th>Имя</th>';
  echo '<th>Отчество</th>';
  echo '<th>01</th>';
  echo '<th>02</th>';
  echo '<th>03</th>';
  echo '<th>04</th>';
  echo '<th>05</th>';
  echo '<th>06</th>';
  echo '<th>07</th>';
  echo '<th>08</th>';
  echo '<th>09</th>';
  echo '<th>10</th>';
  echo '<th>11</th>';
  echo '<th>12</th>';
  echo '<th>13</th>';
  echo '<th>14</th>';
  echo '<th>15</th>';
  echo '<th>16</th>';
  echo '<th>17</th>';
  echo '<th>18</th>';
  echo '<th>19</th>';
  echo '<th>20</th>';
  echo '<th>21</th>';
  echo '<th>22</th>';
  echo '<th>23</th>';
  echo '<th>24</th>';
  echo '<th>25</th>';
  echo '<th>26</th>';
  echo '<th>27</th>';
  echo '<th>28</th>';
  echo '<th>29</th>';
  echo '<th>30</th>';
  echo '<th>31</th>';
  echo '</tr>';
  echo '</thead>';
  echo '<tbody>';
        // Цикл по recordset $rs
    // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array
    while($row = mysql_fetch_array($rs)) {
 
       // Записать значение Таблицы (который является теперь массивом $row)
      echo '<tr>';
      echo '<td>' .  $row['id'] . '</td>';
      echo '<td>' .  $row['surname'] . '</td>';
      echo '<td>' .  $row['name'] . '</td>';
      echo '<td>' .  $row['patronymic'] . '</td>';
      echo '<td width=15p>' .  $row['01'] . '</td>';
      echo '<td width=15p>' .  $row['02'] . '</td>';
      echo '<td width=15p>' .  $row['03'] . '</td>';
      echo '<td width=15p>' .  $row['04'] . '</td>';
      echo '<td width=15p>' .  $row['05'] . '</td>';
      echo '<td width=15p>' .  $row['06'] . '</td>';
      echo '<td width=15p>' .  $row['07'] . '</td>';
      echo '<td width=15p>' .  $row['08'] . '</td>';
      echo '<td width=15p>' .  $row['09'] . '</td>';
      echo '<td width=15p>' .  $row['10'] . '</td>';
      echo '<td width=15p>' .  $row['11'] . '</td>';
      echo '<td width=15p>' .  $row['12'] . '</td>';
      echo '<td width=15p>' .  $row['13'] . '</td>';
      echo '<td width=15p>' .  $row['14'] . '</td>';
      echo '<td width=15p>' .  $row['15'] . '</td>';
      echo '<td width=15p>' .  $row['16'] . '</td>';
      echo '<td width=15p>' .  $row['17'] . '</td>';
      echo '<td width=15p>' .  $row['18'] . '</td>';
      echo '<td width=15p>' .  $row['19'] . '</td>';
      echo '<td width=15p>' .  $row['20'] . '</td>';
      echo '<td width=15p>' .  $row['21'] . '</td>';
      echo '<td width=15p>' .  $row['22'] . '</td>';
      echo '<td width=15p>' .  $row['23'] . '</td>';
      echo '<td width=15p>' .  $row['24'] . '</td>';
      echo '<td width=15p>' .  $row['25'] . '</td>';
      echo '<td width=15p>' .  $row['26'] . '</td>';
      echo '<td width=15p>' .  $row['27'] . '</td>';
      echo '<td width=15p>' .  $row['28'] . '</td>';
      echo '<td width=15p>' .  $row['29'] . '</td>';
      echo '<td width=15p>' .  $row['30'] . '</td>';
      echo '<td width=15p>' .  $row['31'] . '</td>';
      echo '</tr>';
      }
echo '</tbody>';
echo '</table>';
 
    // Закрыть соединение с БД
    mysql_close();
    ?></div>
    <!--Конец таблицы из базы данных-->
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2016, 15:49
Ответы с готовыми решениями:

вывода на экран таблицы
Составить программу заполнения и вывода на экран таблицы Пифагора (умножения).

Программа вывода на экран таблицы
Дан одномерный массив натуральных чисел. Выведите на экран таблицу, в которой перечисленны сумма...

Составьте программу вывода на экран таблицы умножения на 3
3*. Составьте программу вывода на экран таблицы умножения на 3. помогите пожалуйста, срочно...

Написать программу вывода на экран таблицы Пифагора
Помогите написать программу вывода на экран таблицы Пифагора

15
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
23.01.2016, 16:14 2
Что-нибудь вроде:
PHP
1
2
3
4
5
6
7
while($row = mysql_fetch_assoc($result))
{
    echo '<tr>';
    foreach($row as $value)
        echo '<td>' . $value . '</td>';
    echo '</tr>';
}
1
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 16:20 3
Лучший ответ Сообщение было отмечено nikilex как решение

Решение

как вариант
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 echo '<table border="1">';
 echo '<tr><td></td><td></td><td></td><td></td></tr>';
 echo '<thead>';
 echo '<tr>';
 echo '<th>Номер</th>';
 echo '<th>Фамилия</th>';
 echo '<th>Имя</th>';
 echo '<th>Отчество</th>';
 for($i=1;$i<=31;$i++)
 {
     $a = $i<10?0:'';
      echo '<th>'.$a.$i.'</th>';
 }
 echo '</tr>';
 echo '</thead>';
 echo '<tbody>';
        // Цикл по recordset $rs
    // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array
    while($row = mysql_fetch_array($rs)) {
 
       // Записать значение Таблицы (который является теперь массивом $row)
        echo '<tr>';
        echo '<td>' .  $row['id'] . '</td>';
        echo '<td>' .  $row['surname'] . '</td>';
        echo '<td>' .  $row['name'] . '</td>';
        echo '<td>' .  $row['patronymic'] . '</td>';
        for($i=1;$i<=31;$i++)
        {
            $a = $i<10?0:'';
            echo '<td width=15p>' .  $row[$a.$i] . '</td>';
        }
      echo '</tr>';
      }
echo '</tbody>';
echo '</table>';
1
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 17:35  [ТС] 4
fanatikus, Ну ты "ваще" гений, спасибо тебе большое, я не знал что можно for использовать в php. Ай-люли-люли-на-нэ

Добавлено через 25 минут
Подскажите пожалуйста, что такое $a в этом выражении
PHP
1
2
3
4
5
for($i=1;$i<=31;$i++)
 {
     $a = $i<10?0:'';
      echo '<th>'.$a.$i.'</th>';
 }
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 17:38 5
если счетчик меньше 10 выводим 0 перед счетчиком
0
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 17:51  [ТС] 6
И ещё вопросик как мне можно вставить checkbox с уникальными именами вот сюды

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    // Соединиться с сервером БД
    mysql_connect("localhost", "root", "") or die (mysql_error ());
 
    // Выбрать БД
    mysql_select_db("ejornal") or die(mysql_error());
 
    // SQL-запрос
    $strSQL = "SELECT * FROM pupilname  ";
 
    // Выполнить запрос (набор данных $rs содержит результат)
    $rs = mysql_query($strSQL);
    echo '<table border="1">';
    echo '<tr>';
    echo '<td></td><td></td><td></td><td></td>';
    for($i=1;$i<=31;$i++)
 {
     $a = $i<10?0:'';
      echo '<td>  [COLOR="Red"] ВОТ ЗДЕСЬ  CHECKBOX[/COLOR]  </td>';
 }
Миниатюры
Сокращение кода вывода таблицы на экран  
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 18:00 7
PHP
1
echo '<td><input type="checkbox" name="ch" value="val">VAl</td>';
1
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 18:08  [ТС] 8
А как быть с уникальным name?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 18:11 9
Цитата Сообщение от nikilex Посмотреть сообщение
А как быть с уникальным name?
есть счетчик. добавляем к имени
PHP
1
echo '<td><input type="checkbox" name="ch_'.$i.'" value="val">VAl</td>';
1
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 19:15  [ТС] 10
Ой, башка по-моему зашарила=)

PHP
1
2
3
4
5
6
for($i=1;$i<=31;$i++)
 {
     
     
      echo '<td><input type="checkbox" name="ch'.$i.'" value="val"></td>';
 }
Добавлено через 1 минуту
Хе хе, не успел написать, спасибо учитель, ты великолепен!!!

Добавлено через 1 час 2 минуты
Что то я опять запутался, мне нужно вывести input type="text" столько раз, сколько записей в id, в этом коде он выводит, но выводит с каждым разом всё больше и больше input`ов, как сделать по нормальному, подскажите пожалуйста?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while($row = mysql_fetch_array($rs)) {
 
       // Записать значение Таблицы (который является теперь массивом $row)
      echo '<tr>';
      echo '<td>' .  $row['id'] . '</td>';
      echo '<td>' .  $row['surname'] . '</td>';
      echo '<td>' .  $row['name'] . '</td>';
      echo '<td>' .  $row['patronymic'] . '</td>';
      for($i=1;$i<=$row['id'];$i++)
 {
     echo '<tr>';
     echo '<td><input type="text"   name="rate'.$i.'" ></td>';
     echo '</tr>';
     }
      
    echo '</tr>';
      }
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 19:34 11
я не пойму, что нужно. под цифрами 01.02....31, вывести чек боксы?
0
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 19:52  [ТС] 12
Не, с чек боксами я разобрался, теперь мне тексты нужно вывести, картинка не прикрепилась чёт
Миниатюры
Сокращение кода вывода таблицы на экран  
0
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 20:20  [ТС] 13
В общем, мне вот этот запрос

MySQL
1
$my = "SELECT count(id) FROM pupilname ";
Нужно вывести

PHP
1
2
3
4
5
6
for($i=1;$i<=  ВОТ ЗДЕСЬ    ;$i++)
 {
     echo '<tr>';
     echo '<td><input type="text"   name="rate'.$i.'" ></td>';
     echo '</tr>';
    }
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
23.01.2016, 20:38 14
PHP
1
2
3
4
5
6
7
8
$q = mysql_query("SELECT count(id) FROM pupilname");
$res = mysql_fetch_assoc($q);
for($i=1;$i<=$res['count(id)'];$i++)
{
    echo '<tr>';
    echo '<td><input type="text"   name="rate'.$i.'" ></td>';
    echo '</tr>';
}
1
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 22:15  [ТС] 15
И как это у тебя так легко получается=)))? О, великий мастер...

Добавлено через 1 час 26 минут
уф, голова моя ещё совсем слаба, подскажите ещё одну вещь, мне нужно выставлять оценки в таблицу и брать эти оценки из вот отсюда:
картинка 1
PHP
1
2
3
4
5
6
7
$q = mysql_query("SELECT count(id) FROM pupilname");
$res = mysql_fetch_assoc($q);
for($i=1;$i<=$res['count(id)'];$i++)
{
    echo '<tr>';
    echo '<td><input type="text"   name="rate'.$i.'" ></td>';
    echo '</tr>';
и добавить соответственно в таблицу
я этот код кручу-мучу ничего чёт не пойму:

Этот код стоит на кнопочке, которая отправляет
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
//include "ConnectDB.php";
 
 
$mysqli = @new mysqli('localhost', 'root', '', 'ejornal');
  if (mysqli_connect_errno()) {
    echo "Подключение невозможно: ".mysqli_connect_error();
  }
  
  if(isset($_GET['postavit'])){
        
            for ($i=1;$i<=31;$i++){
            if (isset('ch'.$i.'')){
            {
      $mysqli->query('UPDATE `pupilname` SET `'.$i.'`=3 WHERE id=4');
            }
        }
        }
        }
  
  $mysqli->close();
  echo "<script type='text/javascript'>location='klass.php'; </script>";
?>
и ещё он должен определять в каком поле нажат чекбокс и соотвественно в это поле ставить оценки, вот=)
помогите пожалуйста, тут чуток осталось допереть=)
0
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 21
23.01.2016, 22:17  [ТС] 16
Картинка
Миниатюры
Сокращение кода вывода таблицы на экран  
0
23.01.2016, 22:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2016, 22:17
Помогаю со студенческими работами здесь

Составить программу заполнения и вывода на экран таблицы Пифагора
Напишите пожалуйста в Lazarus. Задача вторая -&quot;Составить программу заполнения и вывода на экран...

Построить алгоритм вывода на экран таблицы значений функций
Построить алгоритм вывода на экран таблицы значений функции ...

Написать программу вывода на экран таблицы значений функции
Всем привет!) Помогите с написанием программы с ЦИКЛИЧЕСКИМ АЛГОРИТМОM. Заранее спасибо!) Написать...

Составить программу заполнения и вывода на экран таблицы умножения
Написать программы с использованием процедур. 1. Составить программу заполнения и вывода на экран...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru