会员数据库 - 全部显示?

时间:2013-10-07 22:27:22

标签: php mysql

所以我不是最好的PHP,但每个人都必须从某个地方开始。

我想知道如何从数据库中获取所有行,从某个列中取出数据并以某种方式输出。

我这样做的原因是让它显示在一个页面上注册的所有用户,有点像任何论坛所拥有的成员页面。

我想以某种方式获取行而不是将数据放入数组而不是将foreach语句作为每个变量打印出来。

我不是最好的逻辑思想家,但我会在下面提供一些数据库信息:)

这是数据库结构的图像。

enter image description here

为了向你们展示我实际上已经付出了努力,这就是我迄今为止用我可怕的PHP技能所得到的;)

$result = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($result)) { 
    $username=array($row['username']);
    $email=array($row['email']);
    $firstname=array($row['firstname']);
    $lastname=array($row['lastname']);
    $motto=array($row['motto']);
    $bio=array($row['bio']);
}
foreach ($username as &$item) {
    print $item;
}

此代码不起作用的一个原因是因为它只是选择id等于$ userid的人的行。这意味着它将获取行信息,而不是列信息。

不知道如何做到这一点,因为到目前为止我在PHP冒险中只使用了行的内容,而不是使用列:(

1 个答案:

答案 0 :(得分:1)

它的工作方式是,每次使用“while”循环时,都会有一组新信息。只需在那里展示你的东西。这比你想象的容易,这就是你有评论者抱怨的原因。

但是不要使用mysql_ *函数。使用mysqli或PDO。我知道有大量的例子使用mysql_ *,但那是因为它们既旧的例子也可能是坏例子。不要使用它。我已经取了example from the PHP manual并为你调整了它。

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$result = mysqli_query($link, "SELECT * FROM users ORDER BY username");
if($result) {
    while($row = mysqli_fetch_assoc($result)) { 
        $username=$row['username'];
        $email=$row['email'];
        $firstname=$row['firstname'];
        $lastname=$row['lastname'];
        $motto=$row['motto'];
        $bio=$row['bio'];

        //display your row of user information here
        echo "<div>";
        echo $username;  //etc.

        echo "</div>";
    }

    mysqli_free_result($result);
}
mysqli_close($link);