Я получил значения с помощью php, но таблица дублируется - PullRequest
0 голосов
/ 10 января 2019

Я получил значения из БД (MySQLi) с использованием PHP, затем я рендерил их в таблицу HTML, но я вижу таблицу для каждой строки.

Я хочу их в одной таблице

$sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row_inbox = $result->fetch_array()) {
        $var1_id=$row_inbox["val1"];
        $var2_id=$row_inbox["val2"];
        $var3_id=$row_inbox["val3"];
        echo "
        <div class='container'>

        <table class='table table-bordered'>
            <thead>
                <tr>
                    <th>Title 1 </th>
                    <th>Title 2 </th>
                    <th>Title 3</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>$var1</td>
                    <td>$var2</td>
                    <td>$var3</td>
                </tr>
            </tbody>
          </table>
          ";
    }
} else {
    echo "0 results";
}

Я ожидал, что результат будет в одной таблице, но во многих таблицах (это зависит от количества строк в таблице MySQL)

Ответы [ 5 ]

0 голосов
/ 10 января 2019

из-за того, что вы добавили все табличные теги в while loop пожалуйста, используйте эту ссылку для использования , в то время как

это правильно, почему работать с циклом while

<?php 
    $data_result = "";
    $sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // output data of each row
        while($row_inbox = $result->fetch_array()) {
            $var1_id=$row_inbox["val1"];
            $var2_id=$row_inbox["val2"];
            $var3_id=$row_inbox["val3"]; ?>
            $data_result .= "<tr><td>".$var1."</td><td>".$var2."</td><td>".$var3."</td></tr>";
        <?php }
    } else { ?>
        $data_result .= "<tr><td colspan=3 align='center'>No Data Found</td></tr>";
    <?php } ?>

<div class='container'>
    <table class='table table-bordered'>
        <thead>
            <tr>
                <th>Title 1 </th>
                <th>Title 2 </th>
                <th>Title 3</th>
            </tr>
        </thead>
        <tbody>
            <?php echo $data_result; ?>
        </tbody>
    </table>
</div>
0 голосов
/ 10 января 2019

Просто сделайте это просто, Таблица и заголовок должны быть вне цикла и вне тега php, если это возможно, поэтому вместо повторения вы можете просто написать HTML-теги. и запишите элемент body, который является частью данных в цикле.

<div class='container'>
    <table class='table table-bordered'>
        <thead>
            <tr>
                <th>Title 1 </th>
                <th>Title 2 </th>
                <th>Title 3</th>
            </tr>
        </thead>
        <tbody>

            <?php 
            $sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
            $result = $conn->query($sql);

            if ($result->num_rows > 0) {
                // output data of each row
                while($row_inbox = $result->fetch_array()) {
                    $var1_id=$row_inbox["val1"];
                    $var2_id=$row_inbox["val2"];
                    $var3_id=$row_inbox["val3"]; ?>
                    <tr>
                        <td><?=$var1?></td>
                        <td><?=$var2?></td>
                        <td><?=$var3?></td>
                    </tr>
                <?php }
            } else { ?>
                <tr>
                    <td colspan=3 align='center'>No Data Found</td>
                </tr>
            <?php } ?>
        </tbody>
    </table>
</div>
0 голосов
/ 10 января 2019

Попробуйте это,

$sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
$result = $conn->query($sql);

$createTable = "
<div class='container'>

<table class='table table-bordered'>
<thead>
<tr>
<th>Title 1 </th>
<th>Title 2 </th>
<th>Title 3</th>
</tr>
</thead>
<tbody>";

if ($result->num_rows > 0) {
    // output data of each row
    while($row_inbox = $result->fetch_array()) {
        $var1_id=$row_inbox["val1"];
        $var2_id=$row_inbox["val2"];
        $var3_id=$row_inbox["val3"];

        $createTable .= "         
            <tr>
                <td>$var1</td>
                <td>$var2</td>
                <td>$var3</td>
            </tr>
        ";
    }

    $createTable .= "</tbody></table>";

    echo $createTable;
} else {
    echo "0 results";
}
0 голосов
/ 10 января 2019

Вам необходимо удалить открывающий (и закрывающий) HTML-код таблицы из цикла строк:

$sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "
      <table class='table table-bordered'>
        <thead>
          <tr>
            <th>Title 1 </th>
            <th>Title 2 </th>
            <th>Title 3</th>
          </tr>
        </thead>
        <tbody>";

    // output data of each row
    while($row_inbox = $result->fetch_array()) {
        $var1_id=$row_inbox["val1"];
        $var2_id=$row_inbox["val2"];
        $var3_id=$row_inbox["val3"];
        echo "
          <tr>
            <td>$var1</td>
            <td>$var2</td>
            <td>$var3</td>
          </tr>";
    }

    echo "
        </tbody>
      </table>";
} else {
    echo "0 results";
}
0 голосов
/ 10 января 2019

Удалить table из while.

echo "<table class='table table-bordered'>
    <thead>
      <tr>
        <th>Title 1 </th>
        <th>Title 2 </th>
        <th>Title 3</th>
      </tr>
    </thead>
    <tbody>";

$sql = "SELECT val1, val2, val3 FROM TABLE_NAME";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row_inbox = $result->fetch_array()) {
        $var1_id=$row_inbox["val1"];
        $var2_id=$row_inbox["val2"];
        $var3_id=$row_inbox["val3"];
        echo "
      <tr>
        <td>$var1</td>
        <td>$var2</td>
        <td>$var3</td>
      </tr>

        ";
    }
} else {
    echo "0 results";
}
echo '</tbody></table>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...