PHP контролирует, где таблица размещается на веб-странице

Я новичок в PHP и работаю над очень простым запросом SELECT, извлекающим информацию из базы данных MySQL. У меня есть оператор echo, который выводит, что мое подключение к базе данных было успешным, что является самой первой строкой на веб-странице. После отображения «Подключено успешно» оператор SELECT извлекает информацию о запросе в таблицу. Прямо сейчас все загружается и отображается правильно, но между моим оператором подключения echo и фактическими результатами таблицы есть большой разрыв. Я пытался напрямую выровнять свою таблицу по «ВЕРХУ», но это все еще дает большой разрыв.

<!DOCTYPE html>
<html>

<style>
#trip th {
    padding-top: 5px;
    padding-bottom: 5px;
    text-align: left;
    background-color: #4CAF50;
    color: white;
}

#trip {
    border-collapse: collapse;
    width: 75%;
}

#trip td, #trip th {
    border: 1px solid #ddd;
    padding: 8px;
}

#trip tr:nth-child(even){
    background-color: #f2f2f2;
}

#trip tr: hover {
    background-color: #ddd;
}
</style>

<body>
<?php
    require "Login.php";
?>

<?php

//Create Connection
$conn = mysqli_connect($serverName, $userName, $password, $dbName);

//Check connection
if ($conn === false) {
    die("ERROR: Could not Connect. " . mysqli_connect_error());
}

echo "Connected successfully";

//SQL SELECT query execution
$sql = "SELECT * FROM Trip";
if ($result = mysqli_query($conn, $sql)){
    if (mysqli_num_rows($result) > 0){
        echo "<table id='trip' align='top'>";
            echo "<tr>";
                echo "<th>TID </th>";
                echo "<th>NAME </th>";
                echo "<th>DATE </th>";
                echo "<th>COST </th><br>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['TID'] . " </td>";
                echo "<td>" . $row['NAME'] . " </td>";
                echo "<td>" . $row['DATE'] . " </td>";
                echo "<td>" . $row['COST'] . " </td>";
            echo "</tr>";
        }
        echo "</table>";
        //Free result set
        mysqli_free_result($result);
    }
    else {
        echo "No records matching your query were found";
    }
}
else {
    echo "ERROR: Could not execute $sql. " . mysqli_error($conn);
}

//Close connection
mysqli_close($conn);

?>
</body>
</html>

Я бы хотел, чтобы таблица отображалась прямо под моим сообщением «Подключено успешно», но, похоже, что-то помещает таблицу дальше вниз по странице.

Редактировать Исправлена ​​ошибка "\", которая добавлялась при попытке вставки в Stackoverflow. Не уверен, почему это было добавлено. Это не в моем фактическом файле PHP.

Как выглядит обработанный HTML?

j08691 21.06.2019 22:51

Почему у вас здесь обратная косая черта: echo "<td>" . $row\['TID'\] . " </td>";? Это недопустимый синтаксис PHP.

Barmar 21.06.2019 22:53

@Barmar Не уверен, почему был добавлен этот «\». Этого нет в моем файле PHP. Это было добавлено, когда я пытался вставить в Stackoverflow и использовать форматирование кода.

arooney88 23.06.2019 15:52

Очень странно. Я видел много сбоев с отступами при вставке в SO, но никогда не видел лишних обратных косых черт.

Barmar 24.06.2019 18:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в том, что у вас есть <br> в конце этой строки:

echo "<td>" . $row['COST'] . " </td><br>";

Поскольку <br> не допускается внутри элементов <tr>, браузер отображает их перед таблицей. Таким образом, количество пустых строк перед таблицей равно количеству строк таблицы.

Избавьтесь от этого, это бесполезно.

#trip th {
  padding-top: 5px;
  padding-bottom: 5px;
  text-align: left;
  background-color: #4CAF50;
  color: white;
}

#trip {
  border-collapse: collapse;
  width: 75%;
}

#trip td,
#trip th {
  border: 1px solid #ddd;
  padding: 8px;
}

#trip tr:nth-child(even) {
  background-color: #f2f2f2;
}

#trip tr: hover {
  background-color: #ddd;
}
<div>Connected successfully</div>
<table id='trip' align='top'>
  <tr>
    <th>TID </th>
    <th>NAME </th>
    <th>DATE </th>
    <th>COST </th>
  </tr>
  <tr>
    <td>TID</td>
    <td>NAME</td>
    <td>DATE</td>
    <td>COST</td>
  </tr>
  <tr>
    <td>TID</td>
    <td>NAME</td>
    <td>DATE</td>
    <td>COST</td>
  </tr>
  <tr>
    <td>TID</td>
    <td>NAME</td>
    <td>DATE</td>
    <td>COST</td>
  </tr>
</table>

Другие вопросы по теме