0

你好,我正在做一个项目(我是个新手),这是项目的进展情况……</p>

我创建了一个Create User页面,用户输入凭据并单击Create Account

这将重定向到执行所有 MySQL 查询的另一个页面 (process.php) - 注意:ID设置为 Auto Increment,Not Null,Primary Key。所有的数据都是动态插入的,所以不知道哪个Username属于哪个ID等等。

$query = “INSERT INTO users (Username, Something, Something Else) VALUES (‘John’, ‘Smith’, ‘Whatever’ )”

一切都存储在“用户”表中。

然后它被重定向到另一个页面(content.php),用户可以在其中查看或查看他/她的凭据。

问题是,我使用SELECT * FROM usersandmysql_fetch_array()但它总是给我用户ID = 1而不是当前用户(假设用户使用ID = 11)。我不知道如何编码。

假设有 50 行或更多行,如果我不知道特定行的 ID 或任何其他字段的值,我该如何检索它?

4

4 回答 4

1

您可以使用:

mysql_insert_id();

获取上一次查询生成的 ID。参考:http ://us1.php.net/mysql_insert_id

此函数在成功时返回上一个查询为 AUTO_INCREMENT 列生成的 ID,如果上一个查询没有生成 AUTO_INCREMENT 值,则返回 0,如果没有建立 MySQL 连接,则返回 FALSE。

现在您有了id, 将其添加到您的WHERE子句中。

注意:如果你使用mysqli.

于 2013-11-11T09:59:30.057 回答
0

你必须使用WHERE

SELECT * FROM users WHERE ID = 11

如果您不使用WHERE,它将选择所有用户,并且您mysql_fetch_assoc将获得所有用户中的一行(即 ID = 1 的位置)。

PS:mysql_*已弃用,而是使用mysqli_*.

于 2013-11-11T09:59:25.090 回答
0

你只使用mysql_fetch_array()一次,所以它只给你一行。

你在写什么:

 <?php

 include('connection.php'); //establish connection in this file.
 $sql = "select * from users";
 $result = mysql_query($sql);
 $row = mysql_fetch_array($result);

 echo(row['id']);

 ?>

应该有什么来获取所有行:

 <?php

 include('connection.php'); //establish connection in this file.
 $sql = "select * from users";
 $result = mysql_query($sql);
 while($row = mysql_fetch_array($result))
 {
     echo(row['id']);
 }

 ?>

现在,您需要的是获取当时注册用户的用户ID。

为此,您需要创建一个会话。添加session_start();您的process.php并在那里创建一个会话。现在要获得最后一个id,您必须进行查询:

 select *  
 from users 
 where id = (select max(id) from users);

现在这将为您提供最后创建的 id。将其存储在会话变量中。

$_SESSION['id']=$id;

现在,在 content.php 上添加:

 session_start();
 echo($_SESSION['id']);
于 2013-11-11T10:06:41.967 回答
0

使用 mysql_ 命令:

$query = "INSERT INTO users (`Username`, `Something`, `Something Else`) VALUES ('John', 'Smith', 'Whatever' )";
$result = mysql_query($query) or die( mysql_error() );
$user_id = mysql_insert_id();
header("Location: content.php?id=".$user_id);

或另一种将 $user_id 传递到下一页的方法

$_SESSION['user_id'] = $user_id;
header("Location: content.php");

使用 mysqli_ 命令:

$query = "INSERT INTO users (`Username`, `Something`, `Something Else`) VALUES ('John', 'Smith', 'Whatever' )";
$result = mysqli_query($dbConn, $query)   or die( printf("Error message: %s\n", mysqli_error($dbConn)) );
$user_id = mysqli_insert_id($dbConn);
于 2013-11-11T10:07:56.583 回答