这是交易。我是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>
答案 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>';
}
注意关于编码的第二个问题,应作为第二个问题,因为它与您的第一个问题完全无关。