Javascript AJAX和SQL重复结果

Javascript AJAX和SQL重复结果,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我有问题,我有ajax请求和php脚本,当我点击按钮时,结果重复 HTML和JS: $more-news.clickfunction{ e、 防止违约; $.ajax{//创建一个ajax请求以加载_page.php 类型:GET, url:/getnews.php, dataType:html,//希望返回html 数据:{ 朗:液化天然气, last_id:last_id, ids:dataN }, 成功:功能响应{ var content=document.getElementByIdr

我有问题,我有ajax请求和php脚本,当我点击按钮时,结果重复

HTML和JS:

$more-news.clickfunction{ e、 防止违约; $.ajax{//创建一个ajax请求以加载_page.php 类型:GET, url:/getnews.php, dataType:html,//希望返回html 数据:{ 朗:液化天然气, last_id:last_id, ids:dataN }, 成功:功能响应{ var content=document.getElementByIdresponsecontainer; content.innerHTML=content.innerHTML+响应; //$responsecontainer.htmlresponse; $'more-news'.attr'data-lim',Number$'more-news'.attr'data-lim'+10; //警报响应; } }; }; var-dataN=; var lng=; var last_id=;
乍一看,问题似乎出在您的SQL语句上:

$q = $db->query('SELECT * FROM news WHERE id < "'.$news_id.'" ORDER BY date_show DESC LIMIT 3');
只要您在javascript中不断传递新id last_id,作为最后一条记录,它就应该可以工作

您可能遇到的另一个问题是订购。您需要以与比较相同的方式订购。如果按id进行比较,则需要:

$q = $db->query('SELECT * FROM news WHERE id > "'.$news_id.'" ORDER BY id ASC LIMIT 3');
如果按日期进行比较,则类似于:

$q = $db->query('SELECT * FROM news WHERE date_show < "'.$date_show.'" ORDER BY date_show DESC LIMIT 3');

你不能把身份证和日期都混在一起。除非您知道id和日期显示顺序完全相同。

好的。您的问题一定是设置last_id。此值是否正在更改?这个值是否被正确读取:$news\u id=abs$db->real\u escape\u string$\u GET['last\u id'];是的,这个值正在更改,但是从attr data news发送idBut有一个疑问,我如何才能正确地发送lastID?看起来在Ajax调用本身中这样做是正确的。但是,您是否调试了使用:$\u get['last\u id']时得到的结果?
$q = $db->query('SELECT * FROM news WHERE date_show < "'.$date_show.'" ORDER BY date_show DESC LIMIT 3');