El primer archivo index.php realiza de forma correcta el script correspondiente este es el archivo:
Código PHP:
<html>
<head>
<title>Scroll</title>
<style>
.mostrar{
border:3px solid #f00;
margin: 20px 0px 30px 50px;
padding: 30px;
color: #fff;
width: 400px;
background-color: #111;
border-radius: 6px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
}
#vacio{
display:none;
border:3px solid #f00;
margin: 20px 0px 30px 50px;
padding: 30px;
color: #fff;
width: 300px;
opacity: 0.9;
background-color: #111;
color: #fff;
border-radius: 6px;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
function cargar_scroll() {
var id = {
id : $(".mostrar:last").attr("id")
}
$.post("http://localhost/scroll/data.php",
id,
function(data) {
if (data != "") {
$(".mostrar:last").after(data);
//after before
}else{
$("#vacio").css('display','block').html('No hay mas datos para cargar');
}
});
};
$(window).scroll(function() {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
cargar_scroll();
}
/*if ($(window).scrollTop() + $(window).height() == $(document).height()) {
cargar_scroll();
}*/
});
});
</script>
</head>
<body>
<?php
session_start();
$mysqli = mysqli_connect('localhost', 'root', 'star') or die ("Error al conectar a la base de datos");
mysqli_select_db($mysqli, 'mvc');
$query = "SELECT * FROM comentarios ORDER BY fecha ASC LIMIT 5";
$result = mysqli_query($mysqli, $query);
while($row = mysqli_fetch_array($result)) {
$_SESSION["id"] = $row["idcomentarios"];
?>
<div id="<?php echo $row["idcomentarios"]; ?>" class="mostrar">
<span style="float: right"><?php echo $row["idcomentarios"]; ?></span><br />
<span>Escrito por <?php echo $row["escrito"]; ?> <?php echo $row["comentarios"];?></span><br /><br />
<span><?php echo $row["escrito"];?></span><br />
</div>
<?php
}
mysqli_free_result($result);
mysqli_close($mysqli);
?>
<div id="vacio"></div>
</body>
</html>
Código:
obtengo el ultimo id correspondiente a la tabla comentarios para poder mandar con una variable de sesión el id y obtener la siguiente carga de datos con el archivo data:var id = { id : $(".mostrar:last").attr("id") }
Código PHP:
<html>
<head>
<title>Elemetos del scroll</title>
</head>
<body>
<?php
$mysqli = mysqli_connect('localhost', 'root', 'star') or die ("Error al conectar a la base de datos");
mysqli_select_db($mysqli, 'mvc');
session_start();
$id = $_SESSION["id"];
$query = "SELECT * FROM comentarios WHERE idcomentarios < ".$id." ORDER BY fecha ASC LIMIT 5";
$result = mysqli_query($mysqli, $query);
while($row = mysqli_fetch_array($result)) {
?>
<div id="<?php echo $row["idcomentarios"]; ?>" class="mostrar">
<span style="float: right"><?php echo $row["idcomentarios"]; ?></span><br />
<span>Escrito por <?php echo $row["escrito"]; ?> <?php echo $row["comentarios"];?></span><br /><br />
<span><?php echo $row["escrito"];?></span><br />
</div>
<?php
}
mysqli_free_result($result);
mysqli_close($mysqli);
?>
</body>
</html>
El problema viene cuando quiero volver a cargar mas datos ya que lo que hace es volver a mostrar los mismo datos que mostré al realizar la primera carga con el archivo data.php
ejemplo index.php muestra lo siguiente
datos15
datos14
datos13
datos12
datos11
al realizar el scroll con la ventana obtengo el ultimo id y lo mando al archivo data.php y me muestra los siguiente datos algo como esto
datos10
datos9
datos8
datos7
datos6
al realizar de nuevo scroll obtengo el ultimo id osea el 6 y me debería de obtener los últimos datos osea:
datos5
datos4
datos3
datos2
datos1
pero lo que hace el volverme a repetir los mismos datos anteriores
datos10
datos9
datos8
datos7
datos6
no se es que parte este fallando ya que en la consola de firebug me muestra que obtengo los id correspondientes.