Выбрать и распечатать данные из MySQL с помощью php, не работает

У меня есть таблица («базы данных модулей») в базе данных MySQL, и мне нужно распечатать эту таблицу (очень простую, две строки «Fnamn» и «Enamn» с именами в них) на сервере, написав скрипт php и используя MySQL. Проблема в том, что это не работает. HTML-часть документа (.php) работает отлично (на экране появляется h1), но больше я ничего не получаю. В чем может быть проблема ?

Пробовал несколько разных способов сделать это, даже копируя / вставляя из школ w3 ( https://www.w3schools.com/php/php_mysql_select.asp ) и изменяя несколько переменных, но ничего (было «0 результатов» с этот W3, а теперь ничего с новым).

<h1>Script modul</h1>

<?php

$servername = "localhost";
$username = "antony";
$password = "thepassword";
$dbname = "antony";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$query = "SELECT * FROM moduledatabas";

$result = mysqli_query($query);

if (!$result) {
    $message = 'Invalid query: ' . mysqli_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

while ($row = mysqli_fetch_assoc($result)) {
    echo $row['Fnamn'];
    echo $row['Enamn'];
}

mysqli_free_result($result);
Источник
  • 0
    Прочтите об использовании mysqli. По какой-то причине вы устанавливаете соединение mysqli, а затем используете mysql (смешивание вещей). Никогда не используйте mysql, поскольку он устарел.
  • 1
    phpmyadmin - это инструмент для доступа к базе данных и управления ею. Это не сама БД, и этот вопрос, конечно, не имеет к ней никакого отношения.
  • 0
    в имени вашей таблицы есть пробел, используйте `, чтобы инкапсулировать полное имя:` module databas`, тогда он должен работать.
  • 0
    О смешивании mysql с mysqli см. mysqli::query , пример 1, объектно-ориентированный стиль, поскольку вы начинаете с создания объекта mysqli.
  • 0
    Исправили mysql на mysqli и изменили «базы данных модулей» на «moduledatabas» (в phpmyadmin и коде) и теперь получаю: «весь запрос: SELECT * FROM moduledatabas». Что это могло значить?
Codelisting
за 0 против
Лучший ответ

Вы не прошли$conn в вашейmysqli_query() просто измените свой код, как показано ниже:

$query = "SELECT * FROM moduledatabas";
$result = mysqli_query($conn,$query); 

Для получения дополнительной информации обратитесь к mysqli_query

  • 0
    Ты мой друг - спасатель. Спасибо, сейчас работаю (и всем спасибо)! Теперь он распечатывает все имена, но не по порядку (то есть все фамилии, а затем все фамилии). Что, если мне нужно распечатать все, например, фамилию, фамилию, как в таблице?
Codelisting
Популярные категории
На заметку программисту