Шаг 1: вот функция, которая возвращает набор результатов
public function getLogById($reg_id) {
$stmt = $this->conn->prepare("SELECT * FROM tracking_log WHERE registration_id = ? LIMIT 5");
$stmt->bind_param("s", $reg_id);
if ($stmt->execute()) {
$result = $stmt->get_result()->fetch_all();
$stmt->close();
return $result;
}
else {
return false;
}
}
Шаг 2: Здесь я вызываю эту функцию
if(isset($_SESSION['registration_id'])){
$id = $_SESSION['registration_id'];
$result = $logs->getLogById($id);
echo "<table>";
foreach($tracking_result as $result)
{
foreach($result as $key => $value)
{
//echo "<li>$key : $value</li>";
echo "<tr class=\"active\" role=\"row\">";
echo "<td>Here I want to Display colum-1 of my DB-Table</td>";
echo "<td>"Here I want to Display colum-3 of my DB-Table"</td>";
echo "<td>Here I want to Display colum-4 of my DB-Table</td>";
echo "</tr>";
}
}
echo "<\table>";
}
Когда я print_r($result);
показывает мой результат вот так
1
35124
2017-04-12 00:00:00
30.102261
-81.711777
2
35124
2017-04-10 00:00:00
30.102261
-81.711457
3
35124
2017-04-11 00:00:00
30.063936
-81.711307
4
35124
2017-04-12 00:00:00
30.102451
-81.711957
5
35124
2017-08-12 00:00:00
30.102261
-81.795777
Пожалуйста, помогите мне решить эту проблему.
2 ответа
Вам нужен только один цикл foreach. И вы должны перебрать свою базу данных $result
.
В зависимости от стиля выборки вы можете получить доступ к столбцам, используя $row['some_column_name']
или $row[0]
в цикле foreach.
foreach($result as $row) {
echo "<tr class=\"active\" role=\"row\">";
echo "<td>".$row[0]."</td>";
echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
echo "<td>".$row[3]."</td>";
echo "</tr";
}
Я вижу некоторые осадки здесь. Первое, что я не понял, почему вы это ставите, это ваш цикл за $tracking_result
. Второе - это неправильная строка "<td>"Here I want to Display colum-3 of my DB-Table"</td>"
.
Как бы то ни было, первое, что вам нужно сделать, это создать пустой пример HTML без какого-либо взаимодействия с PHP, просто чтобы посмотреть, чего вы хотите достичь. Например:
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<tr/>
<tr>
<td>Row 1 Value 1</td>
<td>Row 1 Value 2</td>
<td>Row 1 Value 3</td>
<tr/>
<tr>
<td>Row 2 Value 1</td>
<td>Row 2 Value 2</td>
<td>Row 2 Value 3</td>
<tr/>
<tr>
<td>Row 3 Value 1</td>
<td>Row 3 Value 2</td>
<td>Row 3 Value 3</td>
<tr/>
</table>
Это простая таблица HTML. Если вы хотите заполнить его известными данными и известными заголовками, вам просто нужно сосредоточиться на ваших строках следующим образом:
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<tr/>
<?php foreach($results as $row) { ?>
<tr>
<td><?php echo $row['value1']; ?></td>
<td><?php echo $row['value2']; ?></</td>
<td><?php echo $row['value3']; ?></</td>
<tr/>
<?php } ?>
</table>
Но если вы хотите заполнить его неизвестными данными или заголовками, мы начнем что-то более сложное. Соблюдая правило, вы можете достичь этого:
Переменная $ result должна быть индексированным массивом String.
Это означает, что мы можем получить наши значения ключей как наши читаемые заголовки. Есть полезная функция PHP, которая может помочь нам: array_keys. С этим мы можем получить эти заголовки как новый массив. Круто, верно? Но это работает только если у нас есть хотя бы одна строка в $results
. Если это просто пустой массив, мы ничего не получили. Поэтому нам нужно проверить это перед началом.
<?php
$isEmpty = empty($results);
if($isEmpty) {
echo "I'm sorry, we got nothing. :(";
} else {
$headers = array_keys($results[0]); // I'm assuming that all of them have the same indexes.
?>
<table>
<tr>
<?php foreach($headers as $header) { ?>
<th><?php echo $header; ?></th>
<?php } ?>
<tr/>
<?php foreach($results as $row) { ?>
<tr>
<?php foreach($headers as $header) { ?>
<td><?php echo $row[$header]; ?></td>
<?php } ?>
<tr/>
<?php } ?>
</table>
<?php
}
?>
Я действительно не рекомендую использовать что-то настолько общее, но это все.
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.