За последние 24 часа нас посетили 87292 программиста и 4639 роботов. Сейчас ищут 2040 программистов ...

Помогите вывести список записей в таблице БД.

Тема в разделе "PHP для новичков", создана пользователем Василий Ермаков, 7 окт 2018.

  1. Василий Ермаков

    Василий Ермаков Активный пользователь

    С нами с:
    7 окт 2018
    Сообщения:
    2
    Симпатии:
    0
    Есть задача. Вывести список БД которые есть на сервере. По клику на ссылку базы, выводить все таблицы и их кол-во. По клику на таблицу выводить список записей с пагинацией. Вот код. Как можно вывести список записей?

    //соединение с базой данных
    $link = mysqli_connect("localhost", "root", "");

    mysqli_set_charset($link, "utf8");

    if (!$link) {
    echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
    echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
    exit;
    }

    echo "Соединение с MySQL установлено!" . PHP_EOL;
    echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;
    echo "<br>";
    if (isset($_GET['name']))
    {
    printf('<a href="lab2.php">Назад</a>');
    printf('<br>');

    $name = $_GET['name'];
    printf('<br><div style="font-weight: bold">Таблицы: %s</div><br>',$name);
    printf('<br>');
    // Выбираем базу данных
    $d = mysqli_select_db($link, $name);
    $result = mysqli_query($link,'SHOW TABLES');

    //Обходим полученный массив циклом
    $a = 0;
    while ($db = mysqli_fetch_row($result)) {
    //Выводим на экран
    printf('<a href="?name=%s">%s</a>', $db[0], $db[0]);
    printf('<br>');
    $a++;

    }
    printf('<br>');
    printf("Кол-во таблиц:" . $a);


    // вывод списка записей из таблиц



    }


    else {

    //соединение с базой данных
    $result = mysqli_query($link, 'SHOW DATABASES');
    printf('<br><h3>Список баз данных</h3><br>');

    printf('<br>');


    while ($db = mysqli_fetch_row($result)) {
    printf('<a href="?name=%s">%s</a>', $db[0], $db[0]);
    printf('<br>');


    }

    printf('</table>');
    mysqli_close($link);
    }
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    Сначала научитесь правильно оформлять код в соответствующий тег на форуме, осознайте логичность вашего кода с присутствием в нем функций - альтернативу с оптимизацией напишите. Не вижу не единой строки с выводом строк, одной из выбранных по условию таблиц. Смысла вам помогать на данный момент так же не вижу / не логично. Так как просто напросто, по факту, вы хотите чтобы за вас написал посторонний человек, а вы тем не менее скопируете его код, напишите спасибо и на этом весь цирк закончится. С моей стороны, легче осудить и дать направление, чем написать пару строк очередного говнокода.
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Как сделать вывод списка статей? Если состав полей заранее не известен/может быть различен, используйте форыч по каждому полю записи из выборки.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    @miketomlin это что за сайт с внедренным Porno-Drive велосипедами ?
     
  5. Василий Ермаков

    Василий Ермаков Активный пользователь

    С нами с:
    7 окт 2018
    Сообщения:
    2
    Симпатии:
    0
    Код (Text):
    1.  
    2. <?php
    3. //соединение с базой данных
    4. $link = mysqli_connect("localhost", "root", "");
    5.  
    6. mysqli_set_charset($link, "utf8");
    7.  
    8. if (!$link) {
    9. echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
    10. echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
    11. echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
    12. exit;
    13. }
    14.  
    15. echo "Соединение с MySQL установлено!" . PHP_EOL;
    16. echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;
    17. echo "<br>";
    18. if (isset($_GET['name']))
    19. {
    20. printf('<a href="lab2.php">Назад</a>');
    21. printf('<br>');
    22.  
    23. $name = $_GET['name'];
    24. printf('<br><div style="font-weight: bold">Таблицы: %s</div><br>',$name);
    25. printf('<br>');
    26. // Выбираем базу данных
    27. $d = mysqli_select_db($link, $name);
    28. $result = mysqli_query($link,'SHOW TABLES');
    29.  
    30. //Обходим полученный массив циклом
    31. $a = 0;
    32. while ($db = mysqli_fetch_row($result)) {
    33. //Выводим на экран
    34. printf('<a href="?name=%s">%s</a>', $db[0], $db[0]);
    35. printf('<br>');
    36. $a++;
    37.  
    38. }
    39. printf('<br>');
    40. printf("Кол-во таблиц:" . $a);
    41.  
    42.  
    43. // вывод списка записей из таблиц
    44.  
    45.  
    46.  
    47. }
    48.  
    49.  
    50. else {
    51.  
    52. //соединение с базой данных
    53. $result = mysqli_query($link, 'SHOW DATABASES');
    54. printf('<br><h3>Список баз данных</h3><br>');
    55.  
    56. printf('<br>');
    57.  
    58.  
    59. while ($db = mysqli_fetch_row($result)) {
    60. printf('<a href="?name=%s">%s</a>', $db[0], $db[0]);
    61. printf('<br>');
    62.  
    63.  
    64. }
    65.  
    66. printf('</table>');
    67. mysqli_close($link);
    68. }
    ?>

    я не могу понять как передать через GET параметр название таблицы, чтобы потом ее обойти циклом Foreach
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Например ?table=имя_таблицы, не? И я говорил про форыч применительно к каждой записи, а не ко всей таблице, хотя в принципе пофиг, просто у вас везде while. Как использовать форыч по записям, писал там же в этом комменте: http://gency.ru/comment/57
    --- Добавлено ---
    P.S. Если во всех именах (БД и т.п.) не может быть слэшей, для идентификации выводимого объекта можно использовать путь, а не GET-параметр, например в демке к статье используется путь /articles (указывать в пути еще и БД по понятным причинам мне не нужно, но вы можете добавить соотв. ведущий компонент пути).
     
  7. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    По поводу оформления меня тоже бесит. Может админы допилят сохранение данных типо если что то похожее на код есть то запрещать сохранять пока не отформатирует