php - 一个数据库。一个领域。一个 html 动态表。无法提取有限数量的数据

标签 php html mysql

enter image description here我想复制数据库字段的一部分并将其插入到 html 动态表中(动态我的意思是行数的增长取决于数据库表中的行数)。 假设我已经将要在其中插入数据的 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>

最佳答案

这将通过 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>';
}

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

关于php - 一个数据库。一个领域。一个 html 动态表。无法提取有限数量的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49116161/

相关文章:

PHP/MySQL 无法识别的索引错误

html - 内联样式没有引号

mysql - rails 将日期时间转换为范围内的日期

php - 计算 MySQL 数据库列中值的查询

javascript - AngularJs 路由和刷新

php - 如何在过期时间后删除一些文件(PHP,MySQL)?

Java Servlet 过滤器在 Ruby [on Rails] 和 PHP 中等效吗?

php - Angular $http 总是从 PHP API 返回空数据

php - Mysql timediff返回两个不同的值

javascript - Angular 选择不显示默认下拉列表