Извлечь информацию из базы данных и отобразить проблему в формате html? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь отобразить информацию из базы данных на html-странице, но отображается только сообщение «успешно установлено».Имя базы данных «admin», а таблица в этой базе данных называется «users».Я понятия не имею, как пройти мимо сообщения и просто отобразить созданную мной таблицу.

Страница указателя (index.php):

<?php
include_once('connection.php');
$query="select * from users";
$result=mysql_query($query);
?>
<!DOCTYPE html>
<html>
<title>
    <head> Fetch Data Frome Database</head>
</title>
<body>

<table align="center" border="1px" style="width:250px;       line-height: 30px;">
    <tr>
        <th colspan="4"><h2>Account Record</h2></th>
    </tr>
    <t>
        <th>ID</th>
        <th>Username</th>
        <th>Password</th>
    </t>

    <?php

    while($rows=mysql_fetch_assoc($result))
    {
    ?>

    <tr>
        <td><?php echo $rows['ID'];?></td>
        <td><?php echo $rows['username'];?></td>
        <td><?php echo $rows['password'];?></td>
    </tr>
    <?php
    }

    ?>

</table>

</body>
</html>

СТРАНИЦА СОЕДИНЕНИЯ (connection.php):

<?php
//Include your own values for username, password and     dbase name

$host = "localhost";
$username = "root";
$password = "root";
$dbname = "admin";

// Create connection
$conn = new mysqli($host, $username, $password,     $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

Ответы [ 4 ]

0 голосов
/ 13 февраля 2019

Попробуйте это в своем файле.Используйте этот файл в качестве первого для проверки.

<html>
   <head>
      <title>Selecting Table in MySQLi Server</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3306';
         $dbuser = 'root';
         $dbpass = '';
         $dbname = 'admin';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';
         $sql = 'SELECT name FROM tutorials_inf';
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Name: " . $row["name"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>
   </body>
</html>

Примечание: Вы можете проверить ошибки, используя mysqli_error(), например echo mysqli_error(); после вашего запроса на выбор.

0 голосов
/ 13 февраля 2019

Первая проблема в том, что ваш цикл while настроен неправильно.Оператор equals передаст значение mysql_fetch_assoc ($ result) в строки $, так что это просто ничего не сделает.Просто подумайте, что один знак равенства не означает равных, это действительно означает, становится.Так строки становятся результатом.Если у вас есть два знака равенства, вы сравниваете два значения, но это вам тоже не поможет.Что вам действительно нужно сделать, так это сначала установить строки в ноль, а затем сказать, в то время как количество строк меньше, чем результат. Эхо, идентификатор, эхо имени пользователя, эхо пароля и добавление 1 к строкам.

Так что цикл while должен выглядеть болеекак это

$rows = 0;
while($rows < mysql_fetch_assoc($result) ){ 
         $rows++   
   ?>

<tr>
    <td><?php echo $rows['ID'];?></td>
    <td><?php echo $rows['username'];?></td>
    <td><?php echo $rows['password'];?></td>
</tr>
<?php
    }
}

Предполагая, что $ result = mysql_query ($ query) действительно имеет значение, которое должно работать.

Если вам нужно проверить, хорош ли ваш результат, используйте PHP для вывода массива впроверьте print_r ($ результат);Это отобразит все результаты на экране.

0 голосов
/ 13 февраля 2019

Поэтому я предпочитаю использовать этот метод, так как он немного лучше, чем любой другой метод, который я пробовал.Кроме того, я заправляю соединение в класс, и это значительно упрощает обработку соединений с БД.

Страница ПОДКЛЮЧЕНИЯ БД:

class Database
{
private $host = "localhost";
private $db_name = "root";
private $username = "root";
private $password = "admin";
public $conn;

public function dbConnection()
{

    $this->conn = null;
    try
    {
        $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
        $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $exception)
    {
        echo "Connection error: " . $exception->getMessage();
    }

    return $this->conn;
}

}

Теперь я создаюкласс для связи.Я обычно называю это именем сайта.

require_once "db/config/page/location.php";

class localhost {
  // Create conn to db
      private $conn;

      public function __construct()
      {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
      }

      public function runQuery($sql)
      {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
      }
}

Примечание: когда вы хотите использовать соединение на любой странице.Вы можете сделать следующее: EG Index Page:

<?php
    include_once('class.php');
    $lHost = new localhost();

        //calling the users
        $stmt = $lHost->runQuery('SELECT * FROM `users`');
        $stmt->execute();
        $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
    ?>
    <!DOCTYPE html>
    <html>
    <title>
        <head> Fetch Data Frome Database</head>
    </title>
    <body>

    <table align="center" border="1px" style="width:250px;       line-height: 30px;">
        <tr>
            <th colspan="4"><h2>Account Record</h2></th>
        </tr>
        <t>
            <th>ID</th>
            <th>Username</th>
            <th>Password</th>
        </t>

        <?php
        foreach ($users as $key => $user) {
        ?>
        <tr>
            <td><?php echo $user['ID'];?></td>
            <td><?php echo $user['username'];?></td>
            <td><?php echo $user['password'];?></td>
        </tr>
        <?php
        }
        ?>

    </table>

    </body>
    </html>

Не стесняйтесь задавать мне любые вопросы.

0 голосов
/ 13 февраля 2019

Попробуйте собрать весь ваш PHP в один блок

 <?php

include_once('connection.php');
$query="select * from users";
$result=mysql_query($query);

    while($rows=mysql_fetch_assoc($result))
    {


    echo "<tr>";
        echo "<td>".$rows['ID']."</td>";
    echo "<td>".$rows['username']."</td>";
    echo "<td>".$rows['password']."</td>";
    echo "</tr>";

}

?>
...