【问题标题】:Get the data of specific user in PHP在PHP中获取特定用户的数据
【发布时间】:2013-06-09 03:37:50
【问题描述】:

现在我已经创建了一个带有会话的登录表单,我现在需要的是,当用户使用他的用户名和密码登录时,获取他的数据,如姓名、关于等。并将其放在欢迎页面中。

目前我已经创建了这段代码,但是这段代码获取了所有用户数据,

 <?php 
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("usersdata") or die(mysql_error()); 
 $data = mysql_query("SELECT * FROM userid") 
 or die(mysql_error()); 
 Print "<table border cellpadding=3>"; 
 while($info = mysql_fetch_array( $data )) 
 { 
 Print "<tr>"; 
 Print "<th>Name:</th> <td>".$info['Name'] . "</td> "; 
 Print "<th>Username:</th> <td>".$info['Email'] . " </td></tr>"; 
 } 
 Print "</table>"; 
 ?> 

我希望找到一种方法来做到这一点。 :D

【问题讨论】:

  • 您的问题是什么?这些表甚至包含用户数据吗?
  • 你的数据库用户表真的叫“userid”吗?它们是否同时包含“名称”和“电子邮件”列?
  • SELECT * FROM userid WHERE username = ?

标签: php mysql database login


【解决方案1】:

虽然您应该使用 mysqli_ 扩展名,而不是 mysql_,但您可能需要以下内容:

$result = mysql_query("SELECT * FROM userid WHERE username = '" . $username . "'")
    or die(mysql_error());
if(mysql_num_rows($result) == 1) {
    //Found the user
    $row = mysql_fetch_array($result);
    //Results can be accessed like $row['username'] and $row['Email']
} else {
    //Too few or too many records were found
}

注意:我以 username='$username' 为例。最好从登录过程中跟踪用户 ID,因为 ID 指的是特定行。

【讨论】:

  • 感谢 Jacob 帮助我;你的帮助很有用最好的问候 Ahmed Fathi
【解决方案2】:

由于您已经创建了带有会话的登录表单,因此您可以通过以下方式获取当前登录用户的数据:

$_SESSION['userid']:登录页面应该填写。 $_SESSION['userid'] = $id

了解有关会议的更多信息:PHP Sessions W3schools

然后:

$query= mysql_query("SELECT * FROM `userid` WHERE `id` = '".$_SESSION['userid']."' ")or die(mysql_error());
$arr = mysql_fetch_array($query);
$num = mysql_numrows($query); //this will count the rows (if exists) 

HTML

<html>
 //...
<?php if($num > 0){ ?>
<table border="1" cellpadding="3">
<tr><td colspan="2" align="center">Your Info</td></tr>
<tr>
 <td>Name: <?php echo $arr['Name']; ?></td>
</tr>

<tr>
 <td>Email: <?php echo $arr['Email']; ?></td>
</tr>
</table>
<?php }else{ ?>
 User not found.
<?php } ?>
 //...
</html>

【讨论】:

  • 感谢您的大力帮助,向 Ahmed Fathi 致以最诚挚的问候
  • 欢迎您,我还建议将表格重命名为users,并将所有列名重命名为小写字母email,而不是Email。阅读更多关于它的信息link
【解决方案3】:

$data = mysql_query("SELECT * FROM userid")

应该是

$data = mysql_query("SELECT * FROM userid WHERE Name='$selectedName'")

当然你需要定义$selectedName

我还建议您阅读 http://dev.mysql.com/doc/refman/5.0/en/select.html 以了解一些基础知识。

【讨论】:

  • 感谢您尝试帮助我,谢谢,祝 Ahmed Fathi
【解决方案4】:

您的示例代码从数据库中检索所有用户并使用while 循环遍历数据。

要获取已登录的用户,您需要更改获取数据的查询。 我假设您的表中有一个主键并且知道 id,因为用户已经登录。

$data = mysql_query("SELECT * FROM userid WHERE id={$userid}");
$info = mysql_fetch_array( $data );
echo $info['Name'];

$info 现在将包含 1 个用户的所有用户信息,您需要使用登录用户的实际 ID 填写 $userid

【讨论】:

  • 感谢迈克尔的帮助;这对我有帮助,向 Ahmed Fathi 致以最诚挚的问候
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 2021-07-31
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
相关资源
最近更新 更多