Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Mysql PHP Получить все строки с именами колонок и их значениями ?

n0bleman Ученик (3), закрыт 2 дня назад
Так он выводит по порядку и определенным но мне надо циклом вывести назхвание колонок в строке и изхними значениями
чтобы было типо так каждой строкой с переносом строки


id = 1 name=Dean info='Hello Word' итд в зависимости сколько там колонок есть
вот так он выводит строки по заданому имени а надо циклом пройтись и вывести все имена существующих колонок и их значений
вот так работает но надо задавать имя колонки но мне надо цилом чтобы он сам выводил существующие именя колонок и их значения

if($result = mysqli_query($conn, $sql)){
foreach($result as $row){

echo $row["id"] .$row["name"] .$row["info"];


Если написать просто
echo $row;
То выводит
Array
Array
Array
Дополнен 1 месяц назад
Решение найдено

foreach($result->fetch_all(MYSQLI_ASSOC) as $row) {
foreach($row as $key => $value) {
echo '<tr><td>' . $key . '</td><td>' . $value . '</td></tr>';
}
Дополнен 1 месяц назад
Только не пойму как вывести в строку xчтобы выглядело так

id name

12 Dean
Дополнен 1 месяц назад
Имена колонок сверху чтобы были а значения по порядку


id name info
1 Dea HEllo
2 Master Bean
Дополнен 1 месяц назад
echo "<table><tr><th>$key</th><th>"; Вот так колонки стают вверху нормальны по порядку а значения знизу не получается
echo "<table><tr><th>$value</th><th>";
Лучший ответ
Alex Искусственный Интеллект (119595) 3 недели назад
<?php
$servername = "localhosТ";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name";

// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// Запрос к базе данных
$sql = "SELECT * FROM your_table";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $columnName => $value) {
echo "Колонка: " . htmlspecialchars($columnName) . " | Значение: " . htmlspecialchars($value) . "<br>";
}
echo "<hr>"; // Разделитель между строками
}
} else {
echo "Нет записей.";
}

// Закрываем соединение
mysqli_close($conn);
?>
Остальные ответы
Андрей Высший разум (472524) 1 месяц назад
 echo '<table>';
foreach($result->fetch_all(MYSQLI_ASSOC) as $i => $row) {
if ($i === 0) { // если первая строка - выводим заголовок таблицы
echo '<tr><th>', implode('</th><th>', array_keys($row)), '</th></tr>';
}
echo '<tr><td>', implode('</td><td>', $row), '</td></tr>';
}
echo '</table>';
А можно с помощью вот этой функции https://www.php.net/manual/ru/mysqli-result.fetch-fields.php сначала получить имена полей и отдельно вывести строку заголовков столбцов таблицы, а потом уже твоим циклом выводить только значения полей.

P.S. <th> - это для заголовка таблицы. А для обычных ячеек таблицы используется <td>.
n0blemanУченик (3) 1 месяц назад
Спасибо большое токль вот еще что пробуд посчитать количество записей

$s = $s+1;
$b = $s;

в конце кода

echo $b;

У меня записей 5500

а он показывает 5000 если записей меньше то считает правильно

echo '<table>';
foreach($result->fetch_all(MYSQLI_ASSOC) as $i => $row) {
if ($i === 0) { // если первая строка - выводим заголовок таблицы
echo '<tr><th>', implode('</th><th>', array_keys($row)), '</th></tr>';
}
echo '<tr><td>', implode('</td><td>', $row), '</td></tr>';
}
echo '</table>';
$s = $s+1;
$b = $s;

echo $b;
Похожие вопросы