使用PHP在SQL数据库中显示一行

时间:2016-07-19 09:59:03

标签: php mysql select html-table

我有一个名为'成员'还有一个叫做“用户”的表格。我希望在用户注册时使用id,然后该id用于显示表中的一个用户详细信息而不是表中的所有行。 这是我的注册码:     < PHP     $ con = mysql_connect(" localhost"," root","");     if(!$ con)     {       死('无法连接:' .mysql_error());     }     mysql_select_db(" members",$ con);     $ sql =" INSERT INTO用户(姓名,电子邮件,地址,dob,密码)     VALUES(' $ _ POST [名]'' $ _ POST [邮件]'' $ _ POST [地址]'' $ _ POST [DOB]'' $ _ POST [输入mypassword]')&#34 ;;     if(!mysql_query($ sql,$ con))     {       死('错误:' .mysql_error());     }     {       标题("位置:sign_in.php");       出口;     }     mysql_close($ CON)     ?> 这是我的显示表代码:     < PHP     //创建连接     $ conn = new mysqli(" localhost"," root",""," members");     //检查连接     if($ conn-> connect_error){         死("连接失败:"。$ conn-> connect_error);     }     $ sql =" SELECT name,email,address,dob FROM users&#34 ;;     $ result = $ conn-> query($ sql);     if($ result-> num_rows> 0){         echo"< table>< tr>< th>名称< / th>< th>电子邮件< / th>< th>地址< / th> &LT的第i; DOB< /第>< / TR> ID - &#34 ;;         //输出每行的数据         while($ row = $ result-> fetch_assoc()){             echo"< tr>< td>"。$ row [" name"]。"< / td>< td>"。$行["电子邮件"]"< / TD>< TD>" $行["地址"]"< / TD>< TD>" $行[" DOB"]"< / TD>< / TR>&#34 ;;         }         echo"< / table>&#34 ;;     } else {             echo"< p> No Details< / p>< style> p {color:#336699; font-size:20pt; font-family:Gulim; font-weight:bold;居中对齐;填充:10px;位置:绝对;上:80;左:560; z-index:2; border-spacing:0px;}< / style> &#34 ;;     }     $ conn->关闭();     ?>

2 个答案:

答案 0 :(得分:1)

在每个页面的最开头,开始一个会话:

session_start();

这将允许您在浏览器和服务器之间的所有请求中保存和检索有关用户浏览会话的数据。

创建新帐户时,请捕获新ID。我假设您的users表具有主要ID。

$sql="INSERT INTO users ...";

if (!mysql_query($sql,$con)) die('Error: ' . mysql_error());

//Must have called session_start() already. This data
//will be accessible from other pages
$_SESSION['userID'] = mysql_insert_id(); 

header ("Location: sign_in.php");
exit;

在另一页(显示用户详细信息的页面)上,您检索用户的ID并使用它来获取该用户的记录:

session_start();
...
//TODO: make sure the user is signed in before you proceed!

//Retrieve the user's id from storage
$userID = $_SESSION['userID'];
...

//this assumes that the primary id column is named id.  Adjust if needed
$sql = "SELECT name, email, address, dob FROM users WHERE id=$userID"
...

此查询的结果应该只有1行。您可以使用它来填充HTML

附加说明

  1. 正如其他人告诉你的那样,请考虑远离mysql_功能。它们已从最新的PHP中删除,因此它们已经死了。
  2. 绝对了解预备语句。将用户提供的值直接插入SQL查询中是非常糟糕的安全性(请参阅INSERT查询)。您可以接受SQL注入,并且可以轻松接管您的数据库。

答案 1 :(得分:0)

'用户'中是否有像ID这样的列名称表?如果没有,则创建一个名称为' ID'的列。首先是列,然后设置为自动增量。

然后在查询中运行循环并获取id