php - 每个结果都出现在表格中而不是行中

标签 php css mysqli html-table

这是我用于搜索的 php 代码,但为什么结果不像在带有行的单个表中那样出现。我尝试更改 PHP,如 '<td>','<div>' . $row['$accountcode']. '</div>','</td>'但有一个错误。我不擅长编码,所以我不太确定我应该做什么。看起来是这样的:

like this

所有结果都显示在表格中。发生这种情况是因为我的 CSS 吗?

table,tr,td,th {
  border: 1px solid black;
  white-space: normal;
}

table tr td:nth-child(1) {
    background-color: red;
}

table {
  /*table-layout: fixed;
  width: 140%;*/
  margin-left: 190px;
  margin-right: 10px;
  display: block;
  overflow-y: auto;
  height: 450px;
}

th > td > div {
  max-width: 300px;
  min-width: 50px;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
if(isset($_POST['searchq']) && $_POST['searchq'] != "")
{
    if(isset($_POST['searchopt']) && $_POST['searchopt'] != "")
    {
        $escsearch = mysqli_real_escape_string($conn, $_POST['searchq']);
        $searchval = preg_replace('#[^a-z 0-9]#i', '', $escsearch);
        $opt = $_POST['searchopt'];

        switch($opt)
        {
            case "dpt":
            $query = "SELECT * FROM coi_system where department LIKE '%$searchval%'";
            $res = mysqli_query($conn, $query) or die(mysqli_error());
            $count = mysqli_num_rows($res);
            if($count > 0)
            {
                $output = "$count results for <strong>$escsearch</strong>.";

                while($row = mysqli_fetch_array($res))
                {
                    $accountcode = $row['accountcode'];
                    $department = $row['department'];
                    $person_in_charge = $row['person_in_charge'];
                    $project_title = $row['project_title'];
                    $objective = $row['objective'];
                    $how_to_do = $row['how_to_do'];
                    $activities = $row['activities'];
                    $project_started = $row['project_started'];
                    $project_completed = $row['project_completed'];
                    $target_cost_saving = $row['target_cost_saving'];
                    $costsaving_afterjustification = $row['costsaving_afterjustification'];
                    $costsaving_monthly = $row['costsaving_monthly'];

                    echo "<table>
                            <tr>
                                <td><div>Account Code</div></td>
                                <td><div>Department</div></td>
                                <td><div>Person in charge</div></td>
                                <td><div>Project title</div></td>
                                <td><div>Objective</div></td>
                                <td><div>How To Do</div></td>
                                <td><div>Activities</div></td>
                                <td><div>Project Started</div></td>
                                <td><div>Project Completed</div></td>
                                <td><div>Target Cost Saving</div></td>
                                <td><div>Cost Saving After Justification</div></td>
                                <td><div>Cost Saving Monthly</div></td>
                            </tr>
                            <tr>
                                <td><div>$accountcode</div></td>
                                <td><div>$department</div></td>
                                <td><div>$person_in_charge</div></td>
                                <td><div>$project_title</div></td>
                                <td><div>$objective</div></td>
                                <td><div>$how_to_do</div></td>
                                <td><div>$activities</div></td>
                                <td><div>$project_started</div></td>
                                <td><div>$project_completed</div></td>
                                <td><div>$target_cost_saving</div></td>
                                <td><div>$costsaving_afterjustification</div></td>
                                <td><div>$costsaving_monthly</div></td>
                            </tr>
                         </table>"; }
            }else{
                $output = "<p>No records found.</p>"; 
            }
            break;
        }
    }
}

最佳答案

它不会出现在单个表中,因为您为每条记录创建了一个新表。只需取出 <table while 循环中的标签。

echo"<table>";
 while($row = mysqli_fetch_array($res))
                {
                    $accountcode = $row['accountcode'];
                    $department = $row['department'];
                    $person_in_charge = $row['person_in_charge'];
                    $project_title = $row['project_title'];
                    $objective = $row['objective'];
                    $how_to_do = $row['how_to_do'];
                    $activities = $row['activities'];
                    $project_started = $row['project_started'];
                    $project_completed = $row['project_completed'];
                    $target_cost_saving = $row['target_cost_saving'];
                    $costsaving_afterjustification = $row['costsaving_afterjustification'];
                    $costsaving_monthly = $row['costsaving_monthly'];

                    echo "
                            <tr>
                                <td><div>Account Code</div></td>
                                <td><div>Department</div></td>
                                <td><div>Person in charge</div></td>
                                <td><div>Project title</div></td>
                                <td><div>Objective</div></td>
                                <td><div>How To Do</div></td>
                                <td><div>Activities</div></td>
                                <td><div>Project Started</div></td>
                                <td><div>Project Completed</div></td>
                                <td><div>Target Cost Saving</div></td>
                                <td><div>Cost Saving After Justification</div></td>
                                <td><div>Cost Saving Monthly</div></td>
                            </tr>
                            <tr>
                                <td><div>$accountcode</div></td>
                                <td><div>$department</div></td>
                                <td><div>$person_in_charge</div></td>
                                <td><div>$project_title</div></td>
                                <td><div>$objective</div></td>
                                <td><div>$how_to_do</div></td>
                                <td><div>$activities</div></td>
                                <td><div>$project_started</div></td>
                                <td><div>$project_completed</div></td>
                                <td><div>$target_cost_saving</div></td>
                                <td><div>$costsaving_afterjustification</div></td>
                                <td><div>$costsaving_monthly</div></td>
                            </tr>
                        "; }

echo " </table>";

关于php - 每个结果都出现在表格中而不是行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679626/

相关文章:

php - 启用 "remember me"时在 Symfony 2 应用程序中注销用户

PHP MySQLi 多重插入

php - 每页用户显示的分页问题

php - 如何使用PHP检查数据库中是否存在用户

c# - mysql和mssql之间来回发送数据

php - 在 PHP 中从数据库查询创建多维数组

css - 页面中并排放置 2 个 div

html - No-Children-But-Not-Empty 的 CSS 选择器

html - 使用 <strong> 和 <em> 作为 block 元素?

php - json 编码的返回数据取决于提供的登录数据的方式?