一个数据库。一个领域。一个html dinamic表。无法提取有限数量的数据

时间:2018-03-05 17:25:41

标签: php html mysql

enter image description here这是交易。我是PHP,MySQL和HTML的初学者。我想复制数据库字段的一部分并将其插入到html dinamic表中(通过dinamic我的意思是行数的增长取决于数据库表中的行数)。 假设我已经限制了html表格中单元格的宽度,我希望以一定的宽度百分比插入数据。 问题在于复制。如何复制必要数量的符号,使其不会使我的细胞高度增长,但只保持等于一行的高度?在复制之前,我想确保在行的末尾有“...”,就在我剪切文本的地方。 一个重要的细节。我在这里使用俄语和英语。 我的文本数据库字段具有“utf8-general-ci”排序规则。但是当我从数据库输入数据时我已经使用了mysqli_set_charset并设置了cp1251,当从中读取数据时,我使用了utf8设置了mysqli_set_charset。

这是我试图将数据读入html表的php文件。希望您能够帮助我。特别是编码问题。当前的php文件在行尾创建了一个 符号,这非常令人不安。

希望你能帮助我。

    <?php
  include_once 'Connection.php';
  ?>


 <!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        table, th {
        border: 1px solid black;
       }
    </style>
</head>



<body>
    <h1 style="Text-align: center;">Существующие работы </h1><br><br><br>

<table style="width:100%">
     <tr>
        <th style="width:13%">Работодатель</th>
        <th>Описание работы</th>
        <th style="width:8%">Оплата</th>
        <th style="width:8%">Количество людей</th>
        <th style="width:10%">Срочность</th>
        <th style="width:8%">Сложность</th>     
        </tr>
   </table>


 <?php
    $sql = "SELECT * FROM request_data;";
    $conn = Connect();
    mysqli_set_charset($conn,'utf8');
    $result = mysqli_query($conn, $sql);
    $resultCheck = mysqli_num_rows($result);

if ($resultCheck > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        echo '<table style = "width:100%">
            <tr>
              <th style="width:13%">'.$row['ID'].'</th>
              <th>'.substr($row['The_Job'],0,145).'...'.'</th>
              <th style="width:8%">'.$row['Paymentfro'].'-'.$row['Paymentto'].'</th>
              <th style="width:8%">'.$row['Amount'].'</th>
              <th style="width:10%">'.$row['Urgency'].'</th>
              <th style="width:8%">'.$row['Difficulty'].'</th>      
            </tr>
          </table>';
    }
   }

  ?>

 </body>

    </html>

2 个答案:

答案 0 :(得分:0)

您一次又一次地创建了表格。为每条记录创建行。

<?php
    function table_view(){
        include_once 'Connection.php';

        $sql = "SELECT * FROM request_data;";
        $conn = Connect();
        mysqli_set_charset($conn,'utf8');
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);

        if ($resultCheck > 0) {
            while ($row = mysqli_fetch_assoc($result)) {
                echo '<tr>
                   <th style="width:13%">'.$row['ID'].'</th>
                   <th>'.substr($row['The_Job'],0,145).'...'.'</th>
                   <th style="width:8%">'.$row['Paymentfro'].'-'.$row['Paymentto'].'</th>
                   <th style="width:8%">'.$row['Amount'].'</th>
                   <th style="width:10%">'.$row['Urgency'].'</th>
                   <th style="width:8%">'.$row['Difficulty'].'</th>      
                 </tr>';
             }
         }

    }
?>
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <style>
            table, th {
                border: 1px solid black;
            }
        </style>
    </head>
    <body>
        <h1 style="Text-align: center;">Существующие работы </h1><br><br><br>
        <table style="width:100%">
            <tr>
                <th style="width:13%">Работодатель</th>
                <th>Описание работы</th>
                <th style="width:8%">Оплата</th>
                <th style="width:8%">Количество людей</th>
                <th style="width:10%">Срочность</th>
                <th style="width:8%">Сложность</th>     
            </tr>
            <?php table_view(); ?>
        </table>
    </body>
 </html>

答案 1 :(得分:0)

这可以通过css实现(不需要substr也不需要mb_substr,让css添加省略号)。

对于第二个td,您添加class定义为:

<style>
.job-detail {
    width: 53%; /* change this to the width you need */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    }
</style>

当一个单元格超出边界时,将执行自动省略。

然后在td上设置课程:

while ($row = mysqli_fetch_assoc($result)) {
    echo '<tr>
          <td style="width:13%">'. $row['ID'] .'</td>
          <td class="job-detail">'. $row['The_Job'] .'</td>
          <td style="width:8%">'. $row['Paymentfro'] .'-'.$row['Paymentto'].'</td>
          <td style="width:8%">'. $row['Amount'] .'</td>
          <td style="width:10%">'. $row['Urgency'] .'</td>
          <td style="width:8%">'. $row['Difficulty'] .'</td>      
        </tr>';
}

注意关于编码的第二个问题,应作为第二个问题,因为它与您的第一个问题完全无关。