Php 我得到了重复的数据
我有两张表,一张是电影,另一张是电影票,总共23张 请参见下面的屏幕截图了解胶片表结构 下面是电影投票表的结构 我想在胶片表“ano”列中显示用户_id=8163的所有记录以及按年份描述的订单 我使用每页限制12条记录,这意味着分页是存在的。但是当我运行一些记录时,它们在第二页中是重复的 下面是我的代码Php 我得到了重复的数据,php,mysql,Php,Mysql,我有两张表,一张是电影,另一张是电影票,总共23张 请参见下面的屏幕截图了解胶片表结构 下面是电影投票表的结构 我想在胶片表“ano”列中显示用户_id=8163的所有记录以及按年份描述的订单 我使用每页限制12条记录,这意味着分页是存在的。但是当我运行一些记录时,它们在第二页中是重复的 下面是我的代码 $memID = 8163; SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fech
$memID = 8163;
SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fecha_es,a.genero,a.ano,b.user_id,b.movie_id,b.rating FROM film a, film_votes b WHERE a.peli_id=b.movie_id AND b.user_id=$memID ORDER BY a.ano DESC LIMIT 0,12
SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fecha_es,a.genero,a.ano,b.user_id,b.movie_id,b.rating FROM film a, film_votes b WHERE a.peli_id=b.movie_id AND b.user_id=$memID ORDER BY a.ano DESC LIMIT 12,12
我不知道为什么会发生这种情况,也不知道为什么第二页会出现重复记录
请建议我如何解决这个问题以及我犯了什么错误
提前感谢您阅读第二页,您需要使用以下内容:
SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fecha_es,a.genero,a.ano,b.user_id,b.movie_id,b.rating FROM film a, film_votes b
WHERE a.peli_id=b.movie_id AND b.user_id=$memID
ORDER BY a.ano DESC
LIMIT 12, 12
限制
是这里的关键。语法是:
LIMIT [Start], [Length]
你试过SQL左连接吗 比如:
SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fecha_es,a.genero,a.ano,b.user_id,b.movie_id,b.rating
FROM film a
LEFT JOIN film_votes b
ON a.peli_id=b.movie_id
WHERE b.user_id=$memID
ORDER BY a.ano DESC LIMIT 0,12;
改变
继续下一页时,描述限制12、12等24、12
更多信息:似乎您正在为所有页面执行相同的代码。所以你需要做一点动态,像这样
$page=1;//receive the page number.lets assume 1 for first page 2 for 2nd page
//$page=$_GET['page'];you can receive it this way
$start=($page-1)*12;//calculate starting index
//现在让您的查询如下所示
SELECT a.cartel,a.cartel_es,a.cartel_vo,a.titulo_es,a.titulo,a.titulo_url,a.fecha_es,a.genero,a.ano,b.user_id,b.movie_id,b.rating FROM film a, film_votes b WHERE a.peli_id=b.movie_id AND b.user_id=$memID ORDER BY a.ano DESC LIMIT $start,12
你们两个代码之间应该有什么不同?看起来是一样的:-)第二页需要
限制12,12
。两个代码都是一样的。这就是为什么你会得到重复的结果。@Shaiful Islam和Praveen Kumar是的,我在提问时出错了,但实际上极限是0,12和12,12,我在提问时出错了,但实际上极限是0,12和12,12哦,好的,让我再次检查你的问题,给你一个更好的左连接解决方案。你认为左连接在那里有效吗?左连接意味着从左表中获取记录,如果我们使用table1左连接table2,则从table1中获取所有匹配的记录,但我需要从两个表中获取所有匹配的记录