Как создать HTML-таблицу имен файлов из базы данных mySQL и соответствующих им файлов (гиперссылки) в PHP - PullRequest
1 голос
/ 19 мая 2019

У меня есть форма, которая отправляет файл на сервер в папке , загружает , а также сохраняет имя файла (как хранится на сервере), а также другие сведения о файле в моей базе данных. Теперь я пытаюсь создать HTML-таблицу, которая отображает сведения о файле, а также соответствующий файл (конечно, в гиперссылке).

Есть ли способ к этому? У меня была идея связать имя файла с соответствующим файлом в моем каталоге uploads / , но я не знаю, как этого добиться.

Вот моя таблица uploaded_content , где данные формы хранятся в моей базе данных

================================================
id |Description | filename                     |
------------------------------------------------
1  |Information | 3223-2323-4334-32-slajjjq.txt|
2  |Users       | 3223-2323-4344-33-slik.txt   |
================================================

А вот пример того, как выглядит мой каталог uploads/ (обратите внимание, что их имена сохранены в моей базе данных)

3223-2323-4334-32-slajjjq.txt
3223-2323-4344-33-slik.txt

Итак, теперь я хочу создать таблицу HTML со следующими столбцами

id |Description | filename  |File   

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Это не лучший способ сделать это, но я просто хочу показать вам, как это сделать.

Шаг 1 - Создание базы данных mysql.

CREATE TABLE `uploaded_content` (
  `id` int(11) NOT NULL,
  `description` text NOT NULL,
  `filename` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Шаг 2 - Вставить данные в эту БД.

INSERT INTO `uploaded_content` (`id`, `description`, `filename`) VALUES
(1, 'Information', '3223-2323-4334-32-slajjjq.txt'),
(2, 'Users', '3223-2323-4344-33-slik.txt');

Шаг 3 - Создайте config.php:

<?php
    $conn = new PDO('mysql:host=localhost;dbname=stack', 'root', '');
    $q = $conn->query("SELECT * FROM uploaded_content WHERE id");
    $f = $q->fetchAll();
?>

Шаг 4 - Создайте index.php с этим кодом:

<?php
include('config.php');
?>

<table>
    <tr>
      <th>ID</th>
      <th>Description</th> 
      <th>File</th>
      <th>Download link</th>
    </tr>
<?php 
foreach ($f as $g) :?>
  <tr>
    <td> <?php echo $g['id']; ?></td>
    <td> <?php echo $g['description']; ?></td>
    <td> <?php echo $g['filename']; ?></td>
    <td><a href="https://example.com/uploads/<?php echo $g['filename']; ?>">Download</a></td>
  </tr>
<?php endforeach;?>
</table>

Когда вы закончите, вы получите html-страницу примерно так:

<table>
    <tr>
      <th>Id</th>
      <th>Description</th> 
      <th>File</th>
      <th>Download link</th>
    </tr>
    <tr>
      <td>1</td>
      <td>Information</td>
      <td>3223-2323-4334-32-slajjjq.txt</td>
      <td><a href="https://example.com/uploads/3223-2323-4334-32-slajjjq.txt">Download</a></td>
    </tr>
    <tr>
      <td>2</td>
      <td>Users</td>
      <td>3223-2323-4344-33-slik.txt</td>
      <td><a href="https://example.com/uploads/3223-2323-4344-33-slik.txt">Download</a></td>
    </tr>
</table>
0 голосов
/ 19 мая 2019
  1. Сделайте запрос, чтобы получить список из базы данных.
  2. Используйте этот список для создания таблицы HTML.

Таблица:

CREATE TABLE `a_files` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `Description` varchar(255) DEFAULT NULL,
  `filename` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Данные:

INSERT INTO `a_files` (`id`, `Description`, `filename`)
VALUES
    (1, 'Information', 'some-file-000-111-222.txt'),
    (2, 'Users', 'some-file-000-111-223.txt');

Код:

 class FileLister {
    const UPLOAD_DIR = '/uploads';
    public function makeList()
    {
        $db = [
            'host' => '127.0.0.1',
            'user' => 'app',
            'password' => 'aaaa',
            'database' => 'sss',
        ];
        $dsn = "mysql:dbname={$db['database']};host={$db['host']}";

        try {
            $pdo = new PDO($dsn, $db['user'], $db['password']); 
            $sql = "SELECT * FROM `a_files`";
            $rs = $pdo->query($sql);
            foreach($rs as $row) {
                // echo print_r($row, true) . PHP_EOL;
                echo sprintf("<A href=\"https://sample.com%s/%s\">%s</A>\n",
                    self::UPLOAD_DIR,
                    $row['filename'],
                    $row['Description']);
            }
        } catch (PDOException $e) {
            echo $e->getMessage() . "\n";
            exit();
        }
    }
}
$lister = new FileLister;
$lister->makeList();

Выход:

<A href="https://sample.com/uploads/some-file-000-111-222.txt">Information</A>
<A href="https://sample.com/uploads/some-file-000-111-223.txt">Users</A>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...