【问题标题】:Retrieving specific value from a database php [closed]从数据库php中检索特定值[关闭]
【发布时间】:2016-02-26 17:52:05
【问题描述】:

我有一个大学项目,用户可以在其中注册和登录网站。我已经设置好了,所以在注册用户时输入他们的用户名、电子邮件、密码、确认密码、地址和电话号码。注册后,它们会被分配一个随机字符串值,我们称之为 $randomString。

所以我的数据库是 login_db,它包含表用户。表格标题是用户名、电子邮件、密码、地址、电话号码、随机字符串。

它运行良好,用户可以注册,他们的详细信息被添加到数据库中,用户可以登录。当他们登录时,他们被重定向到 admin.php。这个页面目前是空白的。

还记得分配给 $randomString 的人吗?我需要进入数据库检索 $randomString 并显示在 admin.php 上。

这是我到目前为止所尝试的,我只能显示所有用户的随机字符串,但我只需要登录的用户 randomString。所以我假设我需要经历的步骤是
1. 检查 IF 用户是否登录。也许 ----> if(isset($_SESSION['email']) ????
2. 检查 WHAT 用户登录。 ????
3. 检索登录用户randomString。 ????
4. 显示随机字符串。也许----> echo $result ???

我对如何做到这一点的想法完全为零,因此感谢所有帮助。

$connection = mysqli_connect('localhost', 'root', '', 'login_db');

if($connection) {
echo "we are connected";
} else {
die("Database connection failed");
}


?>


<div class="jumbotron">
<h1 class="text-center"><?php

$query = "SELECT randomString FROM users";

$result = mysqli_query($connection, $query);

while ($row = mysqli_fetch_row($result)) {

print_r($row);

}

?></h1>
</div>

【问题讨论】:

  • "检查哪个用户登录了。??" ??
  • 我不是必须先检查用户是否已登录,然后如果用户已登录,则找出哪个用户已登录?
  • 或者可以一步完成吗?

标签: php html mysql database


【解决方案1】:

让我解释一下你的问题:

检查用户是否登录

当用户登录您的系统时,您需要在会话中设置一些值,以便您可以在每个新请求中检查该会话值,就像您在您可能所说的那样。即if(isset($_SESSION['email'])

检查 WHAT 用户登录。 ????

如果您想知道哪个用户登录了,那么您还必须设置所有用户信息 (id,用户名/名字或姓氏等)在您的会话中与您保存的相同 会话中的用户电子邮件。

检索登录用户randomString

要检索登录用户随机字符串,您可以使用用户第一次登录时在会话中保存的用户信息查询数据库。即。

Select randromString from users_table where id='$_SESSION['id']'; //i had suppose you had kept id of logged in user in session here . 

显示随机字符串

要显示随机字符串,是的,现在您只需回显您使用上述查询从数据库中检索到的$randomString 的值。

【讨论】:

  • 啊,我明白了,谢谢你帮我解决这个问题:) 非常感谢
  • @Lewk 如果您觉得这有帮助,那么请接受答案,以便对其他人也有帮助。
  • @Drudge 你的查询是错误的。因为您没有从数据库中选择 id,所以您只选择了 randomString,因此可能无法识别此 where id=
  • @OmariOmosa 您可以从表中选择任何列 buddy 。 where id= 为什么不被识别??
  • @Drudge Ouw 谢谢我试过了。有一段时间它给了我一个错误,可以说这是一个不同的场景
【解决方案2】:

首先创建连接

<?php
$hostname_localhost = "localhost";
$database_localhost = "databasename";
$username_localhost = "root";
$password_localhost = "";
$localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

第二次从数据库中为登录用户选择你想要的内容

<?php
$colname_record = "-1";
if (isset($_SESSION['email'])) {
  $colname_record = $_SESSION['email'];
}
mysql_select_db($database_localhost, $localhost);
$query_record = "SELECT userID, randomString, email FROM users WHERE email='$colname_record'";
$record = mysql_query($query_record, $localhost) or die(mysql_error());
$row_record = mysql_fetch_assoc($record);
$totalRows_record = mysql_num_rows($record);
?>

第三次获取登录用户的变量并回显

<?php
$randomstring = $row_record['randomString'];
?>

并显示它

<?php
echo $randomstring;
?>

【讨论】:

  • 不要建议使用 mysql_* ,因为它在 PHP7 中被删除了。
  • 我应该推荐哪一个? @Drudge
  • 检查 PDO 和 mysqli 。
  • 感谢您提供的信息。我会尽量保持更新
  • 这就是精神。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多