这有点难。整个故事:我有一个用户注册和登录的页面。在数据库中,他们得到一个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']."'");