Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Mostrar registro en un div especifico segun su id??

Estas en el tema de Mostrar registro en un div especifico segun su id?? en el foro de PHP en Foros del Web. Pues tal cual... he intentado de diversas maneras pero termine por desistir y encomendarme a la ayuda de ustedes que saben mas de la materia.... ...
  #1 (permalink)  
Antiguo 12/12/2015, 00:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Pregunta Mostrar registro en un div especifico segun su id??

Pues tal cual... he intentado de diversas maneras pero termine por desistir y encomendarme a la ayuda de ustedes que saben mas de la materia....

Pues la cosa es que estoy haciendo un blog por mi cuenta ('a pura mano' como dicen, sin CMS) y como toda web de contenido dinamico me veo en la obligacion de usar php y se poco o nada del mismo.

Resulta que en mi archivo posts.phtml tengo 6 divs bien marcados cada uno con su respectivo id...(post_uno, post_dos, etc..) los cuales quiero utilizar para mostrar los diversos registros que vaya ingresando mediante mysql...

en un principio supongo debo hacer uso de alguna estructura condicional que cuyo resultado sea lo siguiente:
----------------------------------------------------
registro con id='1' se muestre en el div 1 l
registro con id='2' se muestre en el div 2 l
registro con id='3' se muestre en el div 3 l
registro con id='4' se muestre en el div 4 l
registro con id='5' se muestre en el div 5 l
registro con id='6' se muestre en el div 6 l
----------------------------------------------------
Y que para este punto... una vez haya mas de 6 registros en la base de datos... imprima otros 6 divs para que sirvan como targeta de presentacion para los nuevos registros ´por venir, es decir; hacer uso en este caso de algun tipo de bucle que sepa que una vez que haya mas de 6 registros vaya imprimiento en orden descendente unos nuevos divs conforme se vayan ingresando nuevos registros... seria algo asi:
---------------------------------------------------------------
registro con id='7' se muestre en el nuevo div 1 l
registro con id='8' se muestre en el nuevo div 2 l
registro con id='9' se muestre en el nuevo div 3 l
registro con id='10' se muestre en el nuevo div 4 l
registro con id='11' se muestre en el nuevo div 5 l
registro con id='12' se muestre en el nuevo div 6 l
---------------------------------------------------------------



actualmente solo tengo 2 registros en mi base de datos y se me estan mostrando cada uno en los 6 divs... es decir:

----------------------------------------------------------------------------l
registro con id='1' se esta mostrando en los div 1 2,3,4,5 y6 l
----------------------------------------------------------------------------l
---------------------------------------------------------------------------------------l
registro con id='2' se esta mostrando en los nuevos div 1 2,3,4,5 y6 l
---------------------------------------------------------------------------------------l


el codigo que tengo actualmente es este:

<?php
include('conexiondb.php');

$sql=mysql_query("SELECT * FROM post ORDER BY id DESC ");
while ($row=mysql_fetch_array($sql)) {

?>

<section id="post_seis">
<h1> <?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?> </h6>
</section>


<section id="post_cinco">
<h1><?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?> </h6>
</section>


<section id="post_cuatro">
<h1><?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?> </h6>
</section>


<section id="post_tres">
<h1><?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?></h6>
</section>


<section id="post_dos">
<h1><?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?></h6>
</section>


<section id="post_uno">
<h1> <?php echo $row['titulo']; ?></h1>
<article>
<p>
<?php echo substr($row['contenido'], 0,500)."..."; ?>
</p>
</article>
<h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?></h6>
</section>

<?php
}
?>


de verdad les agradeceria jaja al saber otros lenguajes de programacion tengo nocion del php mas no el conocimiento de sus metodos o syntaxis para poder aplicarlo... AYUDA
  #2 (permalink)  
Antiguo 12/12/2015, 06:18
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Mostrar registro en un div especifico segun su id??

Fallas en como "funciona" mysql_fetch_array... o al hacer el bucle.. una de dos...

Cada vez que ejecutas mysql_fetch_array te devuelve un array de la linea de consulta que haya hecho (y avanza el puntero una linea)..:

Muestras los 6 divs en el mismo bucle, y con los mismos datos del fetch... deberías mostrar los divs según recibes el fetch, uno por linea...

Y luego completar hasta 6, algo así
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 12/12/2015, 07:00
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Mostrar registro en un div especifico segun su id??

Prueba poniendo un contador y lo vas incrementando cada vez que se finalice el bucle

Código PHP:
Ver original
  1. <?php
  2. include('conexiondb.php');
  3.  
  4.  
  5. $contador=; //añadimos un contador
  6. $sql=mysql_query("SELECT * FROM post ORDER BY id DESC ");
  7. while ($row=mysql_fetch_array($sql)) {
  8.  
  9. ?>
  10.  
  11. <section id="<?php echo $contador; ?>">
  12. <h1> <?php echo $row['titulo']; ?></h1>
  13. <article>
  14. <p>
  15. <?php echo substr($row['contenido'], 0,500)."..."; ?>
  16. </p>
  17. </article>
  18. <h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?></h6>
  19. </section>
  20.  
  21. <?php
  22. $contador++; //incrementamos el valor del contador en 1
  23. }
  24. ?>

Puedes utilizar un break con un condicional para salir del bucle cuando el contador llegue a 6 si solo quieres mostrar 6 registros, pero lo habutual es ponert un limit a tu consulta para no traer datos innecesarios.

Porfavir utiliza HIGHLIGHT para hacer el codigo mas leible.

Última edición por xerifandtomas; 12/12/2015 a las 07:07 Razón: Ortografia
  #4 (permalink)  
Antiguo 12/12/2015, 12:47
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Pregunta Respuesta: Mostrar registro en un div especifico segun su id??

Cita:
Iniciado por Eleazan Ver Mensaje
Fallas en como "funciona" mysql_fetch_array... o al hacer el bucle.. una de dos...

Cada vez que ejecutas mysql_fetch_array te devuelve un array de la linea de consulta que haya hecho (y avanza el puntero una linea)..:

Muestras los 6 divs en el mismo bucle, y con los mismos datos del fetch... deberías mostrar los divs según recibes el fetch, uno por linea...

Y luego completar hasta 6, algo así
a ver si te endiendo lo que sugieres es que haga un

$sql=mysql_query("SELECT * FROM post ORDER BY id DESC ");
while ($row=mysql_fetch_array($sql))

por cada section? e indicarle el SELECT * FROM id WHERE id sea igual a la de dicha seccion?
  #5 (permalink)  
Antiguo 12/12/2015, 12:51
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Mostrar registro en un div especifico segun su id??

Cita:
Iniciado por xerifandtomas Ver Mensaje
Prueba poniendo un contador y lo vas incrementando cada vez que se finalice el bucle

Código PHP:
Ver original
  1. <?php
  2. include('conexiondb.php');
  3.  
  4.  
  5. $contador=; //añadimos un contador
  6. $sql=mysql_query("SELECT * FROM post ORDER BY id DESC ");
  7. while ($row=mysql_fetch_array($sql)) {
  8.  
  9. ?>
  10.  
  11. <section id="<?php echo $contador; ?>">
  12. <h1> <?php echo $row['titulo']; ?></h1>
  13. <article>
  14. <p>
  15. <?php echo substr($row['contenido'], 0,500)."..."; ?>
  16. </p>
  17. </article>
  18. <h6> <?php echo "Por ".$row['autor']; ?> <?php echo "el".$row['dia']."/".$row['mes']."/".$row['anio']; ?></h6>
  19. </section>
  20.  
  21. <?php
  22. $contador++; //incrementamos el valor del contador en 1
  23. }
  24. ?>

Puedes utilizar un [URL="http://php.net/manual/es/control-structures.break.php"]break[/URL] con un condicional para salir del bucle cuando el contador llegue a 6 si solo quieres mostrar 6 registros, pero lo habutual es ponert un limit a tu consulta para no traer datos innecesarios.

Porfavir utiliza HIGHLIGHT para hacer el codigo mas leible.
El detalle está en que primero debo solucionar lo de mostrar los 6 primeros registros a lo largo de los section actuales y luego ver lo del bucle para repetir nuevamente otros 6 en caso de nuevos registros por que actualmente el programa me esta arrojando esto: http://i63.tinypic.com/flhguf.jpg
y yo lo que quiero es que lo muestre en el orden que marco ahi de color rojo
  #6 (permalink)  
Antiguo 12/12/2015, 14:38
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Mostrar registro en un div especifico segun su id??

podrias hacer una paginacion de los resultados y esta estaria limitada a mostrar lo 6 por cada pagina, si solo tienes 6 en la base te mostrara solo una pagina y esta iria creciendo con cada registro adicional ingresado
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 12/12/2015, 14:59
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Mostrar registro en un div especifico segun su id??

Cita:
Iniciado por xfxstudios Ver Mensaje
podrias hacer una paginacion de los resultados y esta estaria limitada a mostrar lo 6 por cada pagina, si solo tienes 6 en la base te mostrara solo una pagina y esta iria creciendo con cada registro adicional ingresado
como seria tal proceso de paginacion? tipo cuando tienes un mini navegador entre paginas <- 1-2-3-4 -> ?
  #8 (permalink)  
Antiguo 12/12/2015, 16:04
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Mostrar registro en un div especifico segun su id??

logre hacer la paginacion!

consejo muy util ya que tarde o temprano iba a tener que hacerla ahora claro... sigo con el mismo problema de establecer un registro en cada section segun su id... es decir que en la pagina 1 esten los ultimos registros 12,11,10,9,8,7 esten reflejados en los section 6,5,4,3,2,1 respectivamente y que en la pagina 2, siguiendo el orden esten los primeros registros insertados: 6,5,4,3,2,1 en los section 6,5,4,3,2,1 de dicha pagina

como bien muestra la imagen el resultado que me da y lo que espero que me de
http://i63.tinypic.com/flhguf.jpg
  #9 (permalink)  
Antiguo 12/12/2015, 16:17
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Mostrar registro en un div especifico segun su id??

entendiendo que el section 1 simpre tendra una diferencia de 6(registros) hasta que sea necesario imprimir un nuevo section para el registro 7... imagino que podria hacer uso de algun contador o condicion para cada section que se inicialice segun el id del mismo porque:

section 1 siempre va a contener registros: 1,7,13,19,25.. etc etc
section 2 siempre va a ser necesario en registros 2,8,14,20, 26 etc...

lo que cambia es el valor inicial de la variable a usar (o que se yo) segun el id del section que mostrara ese determinado registro, asi que alguna manera debe de haber para indicar que cuando el id del registro sea el 9 o el 15 o el 21 por ejemplo... se imprima el section 3 y asi... sucesivamente
  #10 (permalink)  
Antiguo 13/12/2015, 17:55
 
Fecha de Ingreso: diciembre-2015
Mensajes: 7
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Mostrar registro en un div especifico segun su id??

a la final solucione todo con uso de estructuras elseif por cada div y la paginacion cada 6 registros, resulto ser menos complejo de lo que parecia... saludos

Etiquetas: blog, datos+db+mysql, mysql, paginaweb, post, programación-general, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:39.