PHP从数据库中检索记录

时间:2014-04-01 14:31:05

标签: php

我是PHP和Web开发的新手。到目前为止,我根据我的知识写了一个简单的PHP脚本。这就是它的样子,以及HTML:

<!DOCTYPE HTML>
<html>
    <title>Retrieve Users</title>
    <meta charset="utf-8">
    <body>
        <p> List of Subscribers </p>
        <?php
            $query = "select * from subscribers";
            $con = mysqli_connect("localhost","root","","subscribers");
            $result;
            if(mysqli_connect_errno()){
                header("Location: unavailable.html");
                exit;
            }else{
                $result = mysqli_query($con,$query);
            }
        ?>
        <table>
            <?php 
                global $result;
                while( $row = mysqli_fetch_array($result) ){
                    $email = $row['email'];
                    echo "<tr>";
                    echo "<td>"  $email  "</td>";
                    echo "</tr>";
                }
            ?>
        </table>
    </body>
</html>  

但是,我在我的网页上看到了这个:

List of Subscribers

"; echo ""; echo ""; } ?>
" $email "  

我需要在此处进行哪些更改?

4 个答案:

答案 0 :(得分:5)

你忘记了联系

echo "<td>".$email."</td>";

<强>更新

问题并不是唯一的问题,文件名的扩展名错误。

以下情况可能会发生这种情况

  1. 没有安装PHP,在这种情况下,你很可能会得到php文件下载的执行内容。
  2. 文件扩展名错误
  3. 使用php短标记<? php.ini中的{not}启用

答案 1 :(得分:2)

获得

"; echo ""; echo ""; } ?>

表示在此页面上根本没有解析PHP代码。最常见的原因是此代码是用.html文件编写的,而不是.php。

默认情况下,.html文件中的PHP代码将被忽略。

@AbhikChakraborty的回答也是有道理的。

答案 2 :(得分:-1)

首先,由于您位于同一页面,因此您无需全局$result

第二,最好将mysqli用作课程,只是为了更好的练习

 <!DOCTYPE HTML>
    <html>
        <title>Retrieve Users</title>
        <meta charset="utf-8">
        <body>
            <p> List of Subscribers </p>
            <?php
                $query = "select * from subscribers";
    $con = new mysqli("localhost", "user" ,"pass" , "db_name" , null , null);
                $con = mysqli_connect("localhost","root","","subscribers");
                var $result;
                if(!$con){
                    header("Location: /unavailable.html");
                    exit;
                }else{
                    $result = $con->query($query);
                }
            ?>
            <table>
                <?php 
    $row = $result->fetch_array();
                    while( $row  ){
                        $email = $row['email'];
                        echo "<tr>";
                        echo "<td>" .$email. "</td>";
                        echo "</tr>";
    $row = $result->fetch_array();
                    }
                ?>
            </table>
        </body>
    </html>  

答案 3 :(得分:-2)

在“=”之前添加一个小数,然后它将显示所有

$email .= $row['email'];