繁体   English   中英

通过PHP访问数据库并显示注册用户

[英]Accessing database and display registered users through PHP

我有一个 members.php 页面/文件,我希望登录用户可以在其中查看数据库中注册的其他用户。 我不太确定如何做到这一点,我现在为此苦苦挣扎了一段时间,因此非常感谢您的帮助。

我将包括 connect.php、members.php 和我的 database.sql

这是我的 connect.php 文件

<?php 
session_start();
//connect.php

$server = 'localhost';
$username = 'root';
$password = '';
$database = 'mydatabase';

if(!mysql_connect('localhost', 'root', ''))
{
exit('Error: could not establish database connection');
}
if(!mysql_select_db($database))
{
exit('Error: could not select the database');
}
?>

这是我的 members.php 文件

<!DOCTYPE HTML>
<head>
<title> ShareLink </title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="wrapper">
    <?php

    //create_cat.php
    include 'connect.php';
    include 'header.php';

    if(isset($_SESSION['signed_in']) == FALSE || isset($_SESSION['user_level']) != 1 )
        {
            //the user IS NOT an admin
            echo '<br/>';
            echo 'Sorry! You have to be <a href="/signin.php"><b>logged in</b></a> to view all the <a href="signup.php" title="Become a registered user!"><b>registered</b></a> members.';
            echo '<br/><br/>';
        }
        ELSE
        {
            echo '<h2>Registered users:</h2>';

            $sql = "SELECT user_name FROM users";

            //NOW I WANT TO DISPLAY ALL THE REGISTERED USERS

            //MUST I ECHO SOMETHING HERE?

            /////////////////////////////////////////////////////////
            ///////////////  WHAT CODE MUST COME HERE? //////////////
            /////////////// AND IS IT SQL OR PHP CODE? //////////////
            /////////////////////////////////////////////////////////
        }
        include 'footer.php';
    ?>
</div>

这是我的 database.sql 文件

CREATE TABLE users (  
user_id     INT(8) NOT NULL AUTO_INCREMENT,  
user_name   VARCHAR(30) NOT NULL,  
user_pass   VARCHAR(255) NOT NULL,  
user_email  VARCHAR(255) NOT NULL,  
user_date   DATETIME NOT NULL,  
user_level  INT(8) NOT NULL,  
UNIQUE INDEX user_name_unique (user_name),  
PRIMARY KEY (user_id)  
);

CREATE TABLE categories (  
cat_id          INT(8) NOT NULL AUTO_INCREMENT,  
cat_name        VARCHAR(255) NOT NULL,  
cat_description     VARCHAR(255) NOT NULL,  
UNIQUE INDEX cat_name_unique (cat_name),  
PRIMARY KEY (cat_id)    
);

CREATE TABLE topics (  
topic_id        INT(8) NOT NULL AUTO_INCREMENT,  
topic_subject       VARCHAR(255) NOT NULL,  
topic_date      DATETIME NOT NULL,  
topic_cat       INT(8) NOT NULL,  
topic_by        INT(8) NOT NULL,  
PRIMARY KEY (topic_id)  
); 

CREATE TABLE posts (  
post_id         INT(8) NOT NULL AUTO_INCREMENT,  
post_content        TEXT NOT NULL,  
post_date       DATETIME NOT NULL,  
post_topic      INT(8) NOT NULL,  
post_by     INT(8) NOT NULL,  
PRIMARY KEY (post_id)  
);
echo '<h2>Registered users:</h2>';

$sql    = "SELECT `user_name` 
           FROM `users` 
           ORDER BY `user_name` ASC";

$result = mysql_query($sql);

while($user = mysql_fetch_array($result))
    echo $user['user_name'].'<br/>';

首先,您需要执行查询 ( mysql_query ) 并将其存储在结果中。 然后,您必须在 while 循环中使用mysql_fetch_array将结果作为数组获取,并回显每个用户的user_name

编辑:正如 Damien Pirsy 在他的评论中指出的那样,似乎user_level需要等于1才能将用户视为已注册。 如果是这种情况,请将$sql更改$sql

$sql    = "SELECT `user_name` 
           FROM `users` 
           WHERE `user_level` = 1 
           ORDER BY `user_name` ASC";

对于您添加到朋友的问题,您可以执行以下操作:

while($user = mysql_fetch_array($result))
    echo $user['user_name'].' 
         <a href="addfriend.php?user='.$user['id'].'">ADD TO FRIENDS</a><br/>';

然后在addfriend.php您将有一些代码使用$_GET['id']将此人添加到朋友。

最基本的:

<?php
echo '<h2>Registered users:</h2>';

$sql = "SELECT user_name FROM users";

// run the query. Will return a resource or false
$result = mysql_query($sql); 

// if it ran OK
if ($result) { 
    // while I have more results, loop through them
    // returning each result as an array
    while ($user = mysql_fetch_array($result)) { 
        // use the array keys (column names) to output the data
        echo $user['user_name'], '<br />';
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM