Я хочу отображать динамические данные в диапазоне строк таблицы HTML, я извлекаю данные из базы данных, все данные поступают, но мне нужны эти динамические данные в формате таблицы HTML, ниже я указал свой формат HTML и мой php-код, пожалуйста, проверьте и помогите я новичок в PHP.
В приведенном ниже формате мне нужно, как сделать:
cycle event dateassigned datecompleted
inventory 21-3-2022 22-3-2022
1 inspection 21-3-2022 22-3-2022
retest 21-3-2022 22-3-2022
repairtest 21-3-2022 22-3-2022
inventory 22-3-2022 22-3-2022
2 inspection 22-3-2022 22-3-2022
retest 22-3-2022 22-3-2022
repairtest 22-3-2022 22-3-2022
Запрос:
$query = "select bm.bridge_id, bm.status, bm.transaction_datetime,bm.review,bm.cycle,bm.event from bridge_details bm where bm.bridge_id = '$bridge_id'";
$res = mysqli_query($maindb_handle, $query) or die(__FUNCTION__." Query Failed ". "<br>($maindb_handle)<br>MySQL Error[".mysqli_error($maindb_handle)."]");
$row = mysqli_fetch_assoc($res);
if ($row['bridge_id'] == '') {
?>
<div align = "center"><font color = "red">Bridge Doesn't Existst - <?=$bridge_id?> </font></div>
<?php } else { ?>
<table border = "2" align = "center" width = "80%">
<tr>
<th style = "line-height:15px; font-size:15px; color:#984806; font-family:Arial Rounded MT Bold;"><b>Cycle</b></th>
<th style = "line-height:15px; font-size:15px; color:#984806; font-family:Arial Rounded MT Bold;"><b>Type</b></th>
<th style = "line-height:15px; font-size:15px; color:#984806; font-family:Arial Rounded MT Bold;"><b>Date Assined</b></th>
<th style = "line-height:15px; font-size:15px; color:#984806; font-family:Arial Rounded MT Bold;"><b>Date Completed</b></th>
</tr>
<?php
echo '<tr>';
for ($i = 0; $i <=1; $i++){
echo '<td rowspan = "4">'.$row['cycle'].'</td>';
echo '<td>'.$row['event'].'</td>';
echo '<td>'.$row['transaction_datetime'].'</td>';
echo '<td>'.$row['review'].'</td>';
}
echo '</tr>';
?>
</table>
<?php } ?>
var_dump($data) внутри вашего while, чтобы проверить, что возвращается, а затем эхо в соответствии с возвращенным столбцом.
Обратите внимание, что данный запрос SELECT
широко открыт для SQL-инъекций. Посмотрите подготовленные заявления, чтобы избежать взлома
вам нужно вернуть массив из базы данных в переменную $data
$handler = new mysqli($hostname, $username, $password, $database);
$bridge_id = 1;
$query = "select bm.bridge_id, bm.status, bm.transaction_datetime,bm.review,bm.cycle,bm.event from bridge_details bm ";
$result = $handler->query($query, MYSQLI_STORE_RESULT);
$data = array();
//rows
if ($result !== FALSE) {
$i = 0;
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$data[$i] = $row;
$i++;
}
$result->close();
} else {
trigger_error('Error: ' . $handler->error . '<br />Error No: ' . $handler->errno . '<br />' . $query);
exit();
}
далее вам нужно переопределить массив
<?php
$rows =[];
foreach($data as $k =>$v){
$rows[$v['cycle']][] = $v;
}
?>
и в цикле выведите этот массив
<?php
foreach($rows as $n =>$val){
foreach($val as $nom =>$value){
echo '<tr>';
if ($nom == 0){
echo '<td rowspan = "4">'.$n.'</td>';
}
echo '<td>'.$value['event'].'</td>';
echo '<td>'.$value['transaction_datetime'].'</td>';
echo '<td>'.$value['review'].'</td>';
echo '</tr>';
}
}
?>
Привет, Pavel12398.....Применил, но не работает....
@Raja «Не работает» нам не помогает. Пожалуйста, будьте конкретны: что именно происходит и чем это отличается от ваших ожиданий?
Привет, Pavel12398.....Спасибо, работает нормально. Теперь мне нужна еще одна вещь, какой бы ни был идентификатор моста, который отображает данные значения, но мне нужно, чтобы 4 события отображались все время, а другие переменные данные отсутствуют --NA-- отобразит, как это сделать? пожалуйста...
замените свой цикл for на этот. вы помещали все свои tds в один tr. Это проблема.
for ($i = 0; $i <=1; $i++){
echo '<tr>';
echo '<td rowspan = "4">'.$row['cycle'].'</td>';
echo '<td>'.$row['event'].'</td>';
echo '<td>'.$row['transaction_datetime'].'</td>';
echo '<td>'.$row['review'].'</td>';
echo '</tr>';
}
Привет, JustCode.... Выше я дал формат таблицы, который я хочу, пожалуйста, проверьте мой код...
В чем именно проблема? Пожалуйста, опишите предполагаемое поведение вашего кода.