Roman777777
@Roman777777
Новый

Выводит из бд информацию на экран только в один столбец, а надо в любой из 5. Как решить?

Выводит информацию на экран только в один столбец. Указываю день недели, например пятница, а выводит всё в один столбец "понедельник"
b89b1ba8a26e4f9fa720d778a97d1a25.jpg
CREATE TABLE IF NOT EXISTS `pks13` (
`id` int(10) NOT NULL,
`day` varchar(100) NOT NULL COMMENT 'День недели',
`subject` varchar(200) NOT NULL COMMENT 'Название предмета',
`classroom` int(10) NOT NULL COMMENT 'Аудитория',
`teacher` varchar(100) NOT NULL COMMENT 'Преподаватель'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='расписание занятий';
019e8894f4214dcc956b346c55d4b06c.jpg
<?php 
    // определяем начальные данные
$db_host = 'localhost';
$db_name = 'schedule';
$db_username = 'root';
$db_password = '';
$db_table_to_show = 'pks13';





    // соединяемся с сервером базы данных
$connect_to_db = mysql_connect($db_host, $db_username, $db_password);

    // подключаемся к базе данных
mysql_select_db($db_name, $connect_to_db);
$qr_result = mysql_query("select * from " . $db_table_to_show);

    // выводим на страницу сайта заголовки HTML-таблицы
echo ' <style type="text/style.css" media="all"> body { margin: 0; padding: 0;}  </style>';
echo '<table  align="center" border="1" cellpadding="1" cellspacing="1" height="167" width="650" ';
echo '<thead>';
echo '<tr>';
echo '<th><b>Понедельник</b></th>';
echo '<th><b>Вторник</b></th>';
echo '<th><b>Среда</b></th>';
echo '<th><b>Четверг</b></th>';
echo '<th><b>Пятница</b></th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';

   // выводим в HTML-таблицу данные из таблицы MySQL 
while($data = mysql_fetch_array($qr_result)){ 
  echo '<tr>';
      echo '<td>' . $data['subject'] . '<br>' . $data['classroom'] . '<br>' . $data['teacher'] . '</td>'; // вместо "Предмет", "Аудитория" и "Преподаватель" - наименования столбцов в таблице БД с твоими данными

  }
  echo '</tbody>';
  echo '</table>';



        // закрываем соединение с сервером  базы данных
  mysql_close($connect_to_db);
  ?>

Как решить? помогите пожалуйста
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ответы на вопрос 3
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
Написать правильно код.
У вас формируется заголовок из нескольких столбцов, а потом для каждой строки данных формируете один столбец. А надо в каждой строке формировать все 5 столбцов, только данные расставлять правильно.
Ответ написан
Можете сделать на основе этого кода, он выводит содержимое каталога в виде таблицы, подмените массив с файлами на свой и будет все ок
<?php
  $dir = 'images/'; // Папка с изображениями
  $cols = 3; // Количество столбцов в будущей таблице с картинками
  $files = scandir($dir); // Берём всё содержимое директории
  echo "<table>"; // Начинаем таблицу
  $k = 0; // Вспомогательный счётчик для перехода на новые строки
  for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы
      if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
          if ($k % $cols == 0) echo "<tr>"; // Добавляем новую строку
          echo "<td>"; // Начинаем столбец
          $path = $dir.$files[$i]; // Получаем путь к картинке
          echo "<a href='$path'>"; // Делаем ссылку на картинку
          echo "<img src='$path' alt='' width='100' />"; // Вывод превью картинки
          echo "</a>"; // Закрываем ссылку
          echo "</td>"; // Закрываем столбец
          /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
          if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "</tr>";
          $k++; // Увеличиваем вспомогательный счётчик
      }
  }
  echo "</table>"; // Закрываем таблицу
?>
Ответ написан
Комментировать
@Spheniscus
<tr> в цикле закрывать тоже надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы