所以我不是最好的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冒险中只使用了行的内容,而不是使用列:(
答案 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);