AntonBrock
@AntonBrock
screen light

Как данные брать из таблицы в БД для таблицы?

Нужно обычную таблицу создать, данные брать в нее из БД

Alphabetic ↓ Numeric Date Unsortable
abc 20 2008-11-24 This
dba 8 2004-03-01 column
ecd 6 1979-07-23 cannot
cut 4.2 1492-12-08 be
001 0 1601-08-13 sorted.
eof 2 1979-07-23 Never

В myphpadmin БД создана - test_codez , таблица тоже - test_table2 ( вставить - пользовался)
<?php
$db_host = "127.0.0.1";
$db_name = "test_codez";
$db_user = "root";
$db_pass = "";

$db = mysqli_connect ($db_host, $db_user, $db_pass, $db_name) or die ("Невозможно подключиться к БД");

mysqli_query ($db, 'set character_set_results = "utf8"');
mysqli_set_charset( $db, 'utf8');

$sql = mysqli_query($db, "SELECT * FROM test_table2 ORDER BY id DESC");
while ($result = mysqli_fetch_array($sql))
{
echo '<td>'.$result['name'].'</td>';
} 

$result = mysqli_query($db, "SELECT * FROM test_table2");
$i=0;
?>


Но почему, когда открываю на openserver данный "сайт" пусто , просто белая страница? 5c41c1762a65b862333907.jpeg
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
flapflapjack
@flapflapjack
на треть я прав
echo '<td>'.$result['name'].'</td>';

1) У вас в таблице нет ни одного столбца по имени name, он и не должен ничего выводить.
2) Почему вы выводите в цикле столбцы, когда fetch_array извлекает СТРОКУ?

Нужно так:

$sql = mysqli_query($db, "SELECT * FROM test_table2 ORDER BY id DESC");
while ($result = mysqli_fetch_array($sql))
{
echo "<tr><td>".$result['id']."</td><td>".$result['Numeric']."</td><td>".$result['Date']."</td><td>".$result['Unsortable']."</td></tr>";
}


И старайтесь не использовать fetch_array, используйте fetch_assoc. Fetch_array возвращает большущий массив с числовыми им именными индексами, а assoc только с именными. Я не представляю себе ситуацию, когда может пригодиться fetch_array, если только вы не делаете что-то типа phpmyadmin, который подразумевает работу с заведомо неизвестными таблицами и именами столбцов. У вас столбцы - известны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы