#php #html
#php #HTML
Вопрос:
Первая строка этой таблицы отображается правильно и по центру, в то время как другие строки выглядят так, как будто они просто повторяются вместо того, чтобы выглядеть так, как будто они являются частью таблицы.
Это часть моего кода:
<table style="width:20%">
<tr>
<th>ID</th>
<th>Nume</th>
<th>Prenume</th>
</tr>
//fetching data from database
<tr>
<td><?php echo $data['id'];?></td>
<td><?php echo $data['nume'];?></td>
<td><?php echo $data['prenume'];?></td>
</tr>
</table>
Предполагается, что код добавит записанного пользователя в базу данных и отобразит всех пользователей в таблице рядом с ним.
Любая помощь приветствуется! Спасибо! (весь код приведен ниже)
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="index.php" method="post">
<input type="text" name="nume" placeholder="nume" required>
<input type="text" name="prenume" placeholder="prenume" required>
<input type="submit" name="sub" value="Adauga in baza de date">
<br>
</form>
<table style="width:20%">
<tr>
<th>ID</th>
<th>Nume</th>
<th>Prenume</th>
</tr>
<?php
if(isset($_POST['sub']))
{
$pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");
$nume = $_POST['nume'];
$prenume = $_POST['prenume'];
$q = "insert into users(nume,prenume)values(:nume,:prenume)";
$r = $pdo->prepare($q);
$r->execute(array(":nume"=>$nume, ":prenume"=>$prenume));
}
$pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");
$query = "select * from liamed.users";
$d = $pdo->query($query);
foreach ($d as $data){
?>
<tr>
<td><?php echo $data['id'];?></td>
<td><?php echo $data['nume'];?></td>
<td><?php echo $data['prenume'];?></td>
</tr>
</table>
</body>
<?php }
?>
</html>
Комментарии:
1. Одного подключения для каждого скрипта более чем достаточно
2. @RiggsFolly да, вообще без какой-либо функции fetch()
3. @Yourcommon Sense Как я могу использовать
fetch()
в этом случае? Я только начинаю изучать PHP и PDO. Любая помощь приветствуется! Редактировать: я следую этому руководству:https://www.youtube.com/watch?v=oti378RVNQc
4. как вы думаете, почему ваша проблема связана с какой-либо выборкой ()? это явно проблема с форматированием HTML. Откройте исходный код страницы и посмотрите, что с ним не так. проблема явно очевидна
5. Не требуется, как напомнил мне YCS 🙂 Мой комментарий был ошибочным. Извините. Следовательно, удалено
Ответ №1:
У вас есть конец таблицы HTML, включенный в ваш цикл, исправьте беспорядок. Переместите это за пределы цикла, и вы должны быть отсортированы 🙂
foreach ($d as $data) :
?>
<tr>
<td><?php echo $data['id'];?></td>
<td><?php echo $data['nume'];?></td>
<td><?php echo $data['prenume'];?></td>
</tr>
<?php
endforeach;
?>
</table>
</body>