entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Poner include en un bucle

Hola a todos !

Tengo una duda, al utilizar un include...

Necesito poder ordenar unos elementos (bloques): por ejemplo:

codigo1.php

<H1>Otro titulo, esta vez mas largo. </H1>
<P> <IMG SRC= "./felix.gif "ALIGN= "MIDDLE " ALT= "EL Gato Felix ">Hoola.</P>

codigo2.php

<P>Esto es un parrafo con informacion
super importante. Notese que las lineas salen pegadas aun dejando
espacios, saltos de linea, etc. <BR> Si pongo esto
si <STRONG>cambia </STRONG> de linea!

codigo3.php

<P>Otro parrafo, esto ya es un poco rollo.</P>
<H3>Pongamos un subtítulo<H3>
<P>Por cierto,  que paso con las <A HREF= "#pepe ">anclas</A>?
<HR>

codigo4.php

<UL> 
<LI> Esto es una lista no ordenada.</LI>
<LI> Las listas quedan mejor si tienen varios elementos. </LI>
</UL>

Ahora tenia pensado guardar en un array, o en una base de datos..el orden:

codigo2
codigo1
codigo3
codigo4

Y hacer un bucle:

            $sql='SELECT block FROM blocks;';

            $stmt = $conn->prepare($sql);
            if($stmt === false) {
              trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR);
            }

            $stmt->execute();

            $stmt->bind_result($block);
            while ($stmt->fetch()) {

                include $block;

            }
            $stmt->close();

Y mi sorpresa es que esto no funciona si lo pongo en un while, o si lo pongo en una funcion tampoco...

Alguien me puede echar un cable !

Mil gracias!

2 Respuestas

2votos

kalua66 Puntos990

Tenia mas sentencias $stms en los demas bloques, y las cerraba y las sobreescribia...me imagino que se machacaban y por eso ya no seguia haciendo nada..

Ahora las pusheo en un array y luego ya con el $stms cerrado los recorro con un for:

        $block = array();

            while ($stmt->fetch()) {

                array_push($block, $blocues);

            }

            $stmt->close();

            for($bucleblockes = 0; $bucleblockes < count($block); $bucleblockes++) {

                include $block[$bucleblockes] ;
            }

3votos

Zenok Puntos460

Suponiendo que solo guardas los nombres de los ficheros desde la base de datos; ¿No tendrás que añadir la extensión del fichero en el include? Ejemplo:

$block = array('codigo1','codigo2','codigo3');

for($i = 0; $i < count($block); $i++) {
    include $block[$i] . '.php';
}

0voto

kalua66 comentado

Tienes razon, en el ejemplo no puse la extension, pero en la realidad puse el nombre.php en la BD.

Creo que ya se que pasaba...
Tenia mas sentencias $stms en los demas codigo, y tambien las cerraba y las sobreescribia...me imagino que se machacaban y por eso ya no seguia haciendo nada..

Muchas gracias, gracias a lo que pusiste prove mas formas! :)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta