显示用户的最后一个数据库条目


Show last database entry for user

这有点难。整个故事:我有一个用户注册和登录的页面。在数据库中,他们得到一个member_id值(自动递增),这个数据库是"users"。因此,当用户想要订购某个东西时,项目的数据和他的member_id会进入另一个数据库,比如说"orders"。在这个数据库中存储了关于他的产品和他的member_id的信息。因此,当用户点击"签出"按钮时,他必须进入一个页面,在该页面上,他最后添加的项目将按照他的member_id 进行排序

给我看这个用户的最后一个条目。

我不知道我使用$_SESSION['SESS_MEMBER_ID']的当前会话是否必须与数据库中的member_id表进行比较,以识别该用户的最后一个条目。

老实说,我不知道该怎么做。

我希望这不是为了混淆…:)

编辑:表格代码:

CREATE TABLE IF NOT EXISTS orders ( 
  order_id int(11) NOT NULL, 
  Items text NOT NULL, 
  member_id text NOT NULL )
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

您的表orders的结构是"错误的",member_id理想情况下应该具有与users表相同的设置,我想是int(11)。所以你的桌子应该是这样的:

CREATE TABLE IF NOT EXISTS orders ( 
  order_id int(11) NOT NULL, 
  Items text NOT NULL, 
  member_id int(11) NOT NULL )
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

至于选择用户订购的最新商品,请尝试以下SQL:

SELECT * FROM orders WHERE member_id = [XYZ] ORDER BY order_id DESC LIMIT 1;类似于这里的其他答案。将[XYZ]替换为member_id。如果这在您的代码中不起作用,请确保在phpMyAdmin(或CLI等)中尝试此查询。

如果您想要orders表中用户的最后一个条目,您可以使用以下作为

select * from orders
where 
member_id = ?
order by order_num desc limit 1

您需要使用orderby

select * from orders where  member_id = 'Member ID' order by order_num desc limit 0,1

您可以从id将自动递增的表中获取最大id。然后获取该id的表的记录:

$no="select max(id) from table";
$no1=mysql_fetch_row($no);
$sql="select * from table where id=$no1[0]";
$a=mysql_fetch_row($sql);

您可以在会话中获取成员id(如果不是),然后您可以使用以下mysql查询从order表中获取该成员的最后一个条目(如果订单表中存在member_id)

$sql=mysql_query("select max(`id`) from `orders` where member_id='".$_SESSION['member_id']."'");