Foros del Web » Programando para Internet » PHP »

Problema mezclando html con php

Estas en el tema de Problema mezclando html con php en el foro de PHP en Foros del Web. Hola buenas chicos! Tengo un paginador que me pagina los resultados de una busqueda a mi base de datos. Va bien, el problema es cuando ...
  #1 (permalink)  
Antiguo 20/10/2008, 13:40
 
Fecha de Ingreso: octubre-2007
Mensajes: 203
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema mezclando html con php

Hola buenas chicos! Tengo un paginador que me pagina los resultados de una busqueda a mi base de datos. Va bien, el problema es cuando muestro los resultados, nose que pasa que al mezclar html con php me sale todo descentrado y mal.

Aqui el codigo:

Código PHP:
while($row = mysql_fetch_array($_pagi_result)){
    ?>
    <table style="HEIGHT:12%;WIDTH:100%;" border=1 align ="center" cellpadding="5" cellspacing="5">
    <td align ="center" valign="top"><?php crear_video($row[ruta])?></td>
    <td align ="center" valign="top"><?php echo"&nbsp;&nbsp"crear_video($row[ruta])?></td>
    </table>
<?php
}
echo 
"<table width=50%><tr bgcolor= #61e877><div align=center>";
//Incluimos la barra de navegación

echo"<p>".$_pagi_navegacion."</p>";
echo 
"</div></tr>";
echo
"<tr>&nbsp;</tr>";
//Incluimos la información de la página actual

echo"<tr><div align=center><p>Resultados ".$_pagi_info."</p></div>";
echo 
"</tr>";
echo 
"</table>" ;
?>
Al probar el codigo html a parte va bien, 1 fila con 2 videos perfectamente alineados, el problema es cuando lo inserto en el php sale descentrado y se va de margenes. La verdad no se que puede ser, deberia de hacer 2 filas de 2 videos cada una pero me hace solo 1.

SEguramente es algun error al defiinr las tablas o algo, pero es que nunca se me han dado bien las tablas, y de todas formas probando solo el html va bien.

Bueno chicos espero que me podais ayudar porque llevo ya horas y no encuentro solucion, saludos y gracias como siempre!
  #2 (permalink)  
Antiguo 20/10/2008, 14:00
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Problema mezclando html con php

Buenas,

Yo soy novatísimo con PHP y mis conocimientos con Html son muy limitados, también, pero hay un par de cosas que me llaman la atención y por eso te las pregunto:

1) En el código Html que incluyes al principio, ¿no deberías incluir una etiqueta <tr> para declarar esa fila (los dos primeros <td>)?
2) Cuando llamas a $row[ruta], si el array fuese asociativo deberías entrecomillar 'ruta', y si es una variable definida antes, debería estar precedida con $, ¿no?

Igual no tiene sentido lo que pregunto, de modo que me disculpo por anticipado si peco de pardillo en exceso :)

Un saludo.
  #3 (permalink)  
Antiguo 20/10/2008, 16:44
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema mezclando html con php

Fijate bien la manera en que construyes tus tablas, hay lugares en donde omites la etiqueta <tr> y otras en donde cierras esa etiqueta pero nunca la abres.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #4 (permalink)  
Antiguo 20/10/2008, 19:03
 
Fecha de Ingreso: octubre-2007
Mensajes: 203
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema mezclando html con php

Código PHP:
<?php
}
echo 
"<table width=50%><tr bgcolor= #61e877><div align=center>";
//Incluimos la barra de navegación

echo"<p>".$_pagi_navegacion."</p>";
echo 
"</div></tr>";
echo
"<tr>&nbsp;</tr>";
//Incluimos la información de la página actual

echo"<tr><div align=center><p>Resultados ".$_pagi_info."</p></div>";
echo 
"</tr>";
echo 
"</table>" ;
?>

Esa parte del codigo esta prehecha y va bien, no la he construido yo.

El problema persiste, alguien sabe como remediarlo?
  #5 (permalink)  
Antiguo 20/10/2008, 19:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema mezclando html con php

El problema persiste por lo que te han dicho tu HTML esta mal formado, es por eso que no se ve bien.

Saludos.
  #6 (permalink)  
Antiguo 21/10/2008, 01:57
 
Fecha de Ingreso: octubre-2007
Mensajes: 203
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema mezclando html con php

Bueno volviendo al tema e corregido mas o menos algo del codigo pero vamos el codigo html funciona prefectamente en un php de prueba a parte, el problema es cuando lo pruebo en ese script:

Aqui el script original de jaronu:

Código PHP:
<?php   
//listar_archivos.php
        
$conexion mysql_connect('localhost','tu_user','tu_clave')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 

           
//Sentencia sql (sin limit)
           
$_pagi_sql "SELECT   id, name, description, ruta, tipo, size FROM archivos";  
           
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() );  
 

  
    


//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array("id","termino");//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

    
//Leemos y escribimos los registros de la página actual
    
while($row mysql_fetch_array($_pagi_result)){

echo 
"<table width=70%><tr bgcolor= #61e877><div align=center>";

                   echo 
"<b>Titulo: </b>";
                   echo 
$row[name];
             echo 
"</div></tr>";
             echo
"<tr>&nbsp;</tr>";
             echo 
"<tr bgcolor= #cccccc><b> &nbsp;&nbsp;&nbsp;Descripcion: </b><br>";

                   echo 
$row[description];
              
              echo 
"</tr>";

            echo
"<tr bgcolor= #cccccc >&nbsp;</tr>";
            echo 
"<tr bgcolor= #cccccc><b> &nbsp;&nbsp;&nbsp;Tamaño: </b>";
              echo 
$row[size]." Bytes";
 
             echo 
"</tr>";


          echo
"<tr bgcolor= #cccccc>&nbsp;</tr>";
           echo 
"<tr bgcolor= #cccccc><div align=center><a href=\"descargar.php?ruta=archivos/$row[ruta]\">Descargar</a></div>"
          echo 
"</tr>";
          echo
"<tr bgcolor= #cccccc>&nbsp;</tr>";

echo 
"</table>" ;

   }

echo 
"<table width=50%><tr bgcolor= #61e877><div align=center>";
//Incluimos la barra de navegación

           
echo"<p>".$_pagi_navegacion."</p>";
           echo 
"</div></tr>";
           echo
"<tr>&nbsp;</tr>";
//Incluimos la información de la página actual

           
echo"<tr><div align=center><p>Resultados ".$_pagi_info."</p></div>";
           echo 
"</tr>";    
echo 
"</table>" ;    
    
        
?>
Aqui el mio solo modificando la salida por pantalla:


Código PHP:
<?php   
//listar_archivos.php
        
$conexion mysql_connect('localhost','tu_user','tu_clave')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 

           
//Sentencia sql (sin limit)
           
$_pagi_sql "SELECT   id, name, description, ruta, tipo, size FROM archivos";  
           
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() );  
 

  
    


//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array("id","termino");//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

    
//Leemos y escribimos los registros de la página actual
    
while($row mysql_fetch_array($_pagi_result)){
?>

<table style="HEIGHT:70%;WIDTH:60%;" border=1 align ="center" cellpadding="5" cellspacing="5">
    <tr>
      <td align ="center" valign="top"><?php echo "HOLA"?></td>
      <td align ="center" valign="top"><?php echo "ADEU"?></td>
    </tr>
</table>
<?php
}
echo 
"<table width=50%><tr bgcolor= #61e877><div align=center>";
//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";
echo 
"</div>";
echo
"<tr>&nbsp;</tr>";
//Incluimos la información de la página actual

echo"<tr><div align=center><p>Resultados ".$_pagi_info."</p></div>";
echo 
"</tr>";
echo 
"</table>" ;
?>
Puede ser porque tengo que embeber el codigo en php mediante echo?. En cuanto lo pruebo en el script sale todo descentrado es icomprensible.

Gracias de nuevo a todos

Última edición por B4l4; 21/10/2008 a las 02:05
  #7 (permalink)  
Antiguo 21/10/2008, 02:53
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Problema mezclando html con php

Hasta donde yo he probado, no hay ningún problema en volcar el código Html directamente o mediante 'echo' de PHP. El resultado será idéntico, siempre que se formateen correctamente los strings. A bote pronto, yo creo que el problema puede estar en cómo defines tu tabla en Html, como ya han indicado otros compañeros. Con html no sé si está permitido, pero con Xhtml recibes un montón de errores cuando intentas validar el código si no defines ni una celda (con <td>) en cada fila.

Este código Xhtml supongo que hace lo que deseas y pasa los validadores HTML Tidy y SGML Parser. Y si no es justo lo que quieres, adaptarlo no creo que te resulte complicado:

Código PHP:
<?php
    
echo '<table summary="quien sabe" style="width:50%; text-align:center">';
    echo 
'<tr style="background-color:#61e877"><td>'.$_pagi_navegacion.'</td></tr>';
    echo 
'<tr><td><br />Resultados '.$_pagi_info.'</td></tr>';
    echo 
'</table>';
?>
Un saludo.
  #8 (permalink)  
Antiguo 21/10/2008, 07:49
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema mezclando html con php

B414 no se si eres muy terco, pero ya te hemos dicho varios que formatees bien tu codigo HTML.

Fijate bien como son las etiquetas HTML para la creación de tablas, debe abrir y cerrar las etiquetas, esta debe ser asi:

<table>
<tr> --Etiqueta de Fila
<td></td> --Etiqueta de columna
<td></td> --Etiqueta de columna
<tr>
</table>
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
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




La zona horaria es GMT -6. Ahora son las 22:18.