0

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

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

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

我正在考虑以某种方式获取行而不是将数据放入数组中,而不是执行 foreach 语句将其作为每个变量打印出来。

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

这是数据库结构的图像。

在此处输入图像描述

为了向你们展示我实际上正在为此付出努力,这就是我迄今为止凭借糟糕的 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 冒险中只使用了行,而不是使用列 :(

4

1 回答 1

1

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

但不要使用 mysql_* 函数。使用 mysqli 或 PDO。我知道有大量使用 mysql_* 的示例,但那是因为它们要么是旧示例,要么是坏示例。不要使用它。我从 PHP 手册中举了一个例子,并为你调整了它。

$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);
于 2013-10-07T22:47:24.280 回答