Каждый результат выводился в таблице вместо строки


Это мой 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;
        }
    }
}

?

Author: Brian Tompsett - 汤莱恩, 2018-02-08

2 answers

Я надеюсь, что это сработает, пожалуйста, проверьте и подтвердите..

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>.";
			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>";
            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>$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>";
						}
        }else{
            $output = "<tr><td>No records found.</td></tr>"; 
        }
		echo "</table>";
        
            break;
        }
    }
}
 1
Author: Jasbir, 2018-02-08 07:21:35

Это не вышло в одной таблице, потому что вы создаете новую для каждой записи. Просто удалите теги <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>";
 2
Author: Twinfriends, 2018-02-08 07:16:19