Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2015, 08:14
isaacbnc
 
Fecha de Ingreso: noviembre-2015
Ubicación: Valencia
Mensajes: 20
Antigüedad: 9 años
Puntos: 0
Información Mostrar un número máximo de entradas MySQL

Hola a todos, estoy haciendo una web donde se podrán editar y borrar contenidos de una tabla de una base de datos.
En esta web, debe aparecer en varios divs idénticos (tantos como registros hay en la base de datos) el "Titulo" y la "Descripción" de cada registro. Cada div además, tendrá dos botones, uno para modificar (que llevará a otra página con un formulario para editar) y otro para eliminar ese registro.

Por otra parte, no quiero que se muestren todos de golpe, ya que si hubiera 500 registros, sería demasiados. He pensado cargarlos de 5 en 5, de manera que, la primera vez que se accede a la página se cargan 5 y después, si se necesita mostrar más se irá pulsando un botón en la parte inferior de la pantalla que mostrará 5 más cada vez que sea pulsado.

Por si no queda claro, lo que quiero hacer se asemeja mucho al funcionamiento de Twitter, en los TimeLines aparecen X tweets, y cuando desplazan hacia abajo y ya no hay ninguno más cargado, se cargan más automáticamente, pues lo que yo quiero hacer es igual, pero sin que sea automáticamente, sería pulsando un botón.

He creado un código en PHP que hace lo de mostrar los 5 (controlando si hay 0, menos de 5 o más), y solo en el caso de que haya más de 5 registros en la BBDD aparecerá a un botón que llamaré a una función, mostrar5(). El código funciona actualmente bien para cuando sólo necesito pulsar el botón una vez, el problema es cuando hay más de 10 registros en la BBDD, que debería pulsar más de una vez para mostrarlos.
Me da la sensación, que falla porque al pulsar el botón se "recarga" toda la página y vuelve a empezar de 0. Así que no se si se podrá resolver con PHP o tendré que usar otra cosa. Me gustaría que me guiaseis.


Código PHP:
<?php

include_once('conexion.php');
include_once(
"security.php");




$con=conect(); 

$cuenta mysqli_query($con"SELECT ID FROM contenido");
$total mysqli_num_rows($cuenta);




$contador=0;
function 
mostrar5()
{
    global 
$total;
    global 
$contador;
    
 
$restant=$total-$contador;

  if(
$restant>5){
     for(
$i=1$i<=5$i++){
?>
<div id="registro">
<div id="contenido">
</div>

<div id="editar">
</div>

<div id="eliminar">
</div>
</div>         

<?php
            $contador
++;
            echo 
"Restant es $restant";
     }
     }
 else if(
$restant<=5){
     echo 
"El resto es $restant";
     for(
$i=1$i<=$restant$i++){
         
?>
<div id="registro">
<div id="contenido">
</div>

<div id="editar">
</div>

<div id="eliminar">
</div>
</div>         

<?php
            $contador
++;
     }
 }
}

?>
<!doctype html>
<link href="editar.css" rel="stylesheet" type="text/css">
<html>
<head>
<meta charset="utf-8">
<title>Editar Contenido</title>
</head>

<body>
<h1>EDITAR CONTENIDO</h1>


<?php

if($total==0){
?>
<h1>Ningún contenido a editar. Por favor, crea un contenido primero <a href="nuevo2.php">aquí</a><h1>

<?php
}
if(
$total<=5){
for (
$i 1$i <= $total$i++) {


?>
<div id="registro">
<div id="contenido">
</div>

<div id="editar">
</div>

<div id="eliminar">
</div>
</div>
<?php
}
}
if(
$total>5){
    for(
$i=1$i<=5$i++){
?>
<div id="registro">
<div id="contenido">
</div>

<div id="editar">
</div>

<div id="eliminar">
</div>
</div>

<?php
    $contador
++;
    }
?>
<?php    
    
    
if(isset($_POST['hola'])){
           
mostrar5();
}
}
?>
<form action="" method="post">
   <input type="submit" value="boton" name="hola" />
</form>

</body>
</html>


Por último, no sé cómo acceder a los contenidos de la base de datos para mostrar el contenido dentro de cada div. Deberían colocarse ordenados, empezando por el último insertado, pero no sé cómo seleccionarlos "en orden" ya que el ID no siempre está ordenado, así que no puedo usarlo para hacer el SELECT. Espero haberme explicado.

Sin más, pediros disculpas por la extensión de mi tema,
y agradecer desde ya cualquier ayuda prestada.