拉数据库信息并显示为html问题?

时间:2019-02-13 19:57:50

标签: php html mysql database fetch

我正在尝试将数据库中的信息显示到html页面,但仅显示“连接成功”消息。数据库的名称为“ admin”,该数据库内的表称为“用户”。我不知道如何跳过消息,只显示我创建的表。

索引页(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 :(得分:0)

尝试将所有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>";

}

?>

答案 1 :(得分:0)

第一个问题是您的while循环设置不正确。 equals运算符会将mysql_fetch_assoc($ result)的值传递给$ rows,因此这将不会做任何事情。只需认为一个等号并不意味着它实际上意味着成为等号。因此行成为结果。如果您有两个等号,则您正在比较两个值,但这对您都没有帮助。您真正需要做的是首先将行设置为零,然后说行数少于该值,然后结果回显id并回显用户名并回显密码,并将行加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($ result);这会将所有结果回显到屏幕上。

答案 2 :(得分:0)

所以我更喜欢使用这种方法,因为它比我尝试过的任何其他方法都要好。另外,我将连接归类到一个类中,这使得处理数据库连接变得非常容易。

数据库连接页面:

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索引页:

<?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>

随时问我任何问题。

答案 3 :(得分:0)

在文件中尝试一下。首先使用此文件进行测试。

<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();)来测试错误。