
Html y php
Hola otra vez, tengo una página en html y quisiera que en una parte en concreto se mostrara el resultado de una consulta a una bbdd en php ( ¿recuerdas el script de mi anterior pregunta?)
Es decir, quisiera que lo siguiente, se mostrara en una parte en concreto de una página html
<?php
/* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila[fecha]."</td>
<td>".$fila[referencia]."</td>
<td>".$fila[operacion]."</td>
";
echo "
</tr>
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila[foto] . '" width="160" height="100">';
echo "</td>
<td>";
echo $fila[descripcion];
echo "</td>
</tr>
</table>
</td>
</tr>
";
}
echo '
</table>
';
Es decir, quisiera que lo siguiente, se mostrara en una parte en concreto de una página html
<?php
/* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila[fecha]."</td>
<td>".$fila[referencia]."</td>
<td>".$fila[operacion]."</td>
";
echo "
</tr>
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila[foto] . '" width="160" height="100">';
echo "</td>
<td>";
echo $fila[descripcion];
echo "</td>
</tr>
</table>
</td>
</tr>
";
}
echo '
</table>
';
1 respuesta
Respuesta de davidcortesb
1
1

Si quieres que aparezca en un lugar concreto, lo que te recomiendo es que primero diseñes la página HTML y luego introduzcas el código en el lugar escogido.
Para eso puedes ayudarte de un editor HTML o, si sabes suficiente sobre HTML y CSS hacerlo a mano.
En principio, se puede colocar cosas en sitios concretos usando tablas, aunque los más puristas prefieren usar capas (
<div>).
Para eso puedes ayudarte de un editor HTML o, si sabes suficiente sobre HTML y CSS hacerlo a mano.
En principio, se puede colocar cosas en sitios concretos usando tablas, aunque los más puristas prefieren usar capas (
<div>).

Sino sale nada, puede ser por la instrucción:
require("dbconnect.inc.php");
Que si no encuentra el fichero, aborta la ejecución.
También puede ser que no haya ningún registro que mostrar, porque no hay en la tabla o porque la sentencia SQL es incorrecta (por ejemplo, el nombre de la tabla está mal escrito).
require("dbconnect.inc.php");
Que si no encuentra el fichero, aborta la ejecución.
También puede ser que no haya ningún registro que mostrar, porque no hay en la tabla o porque la sentencia SQL es incorrecta (por ejemplo, el nombre de la tabla está mal escrito).

Todo eso lo he comprobado, lo que me refiero que aparece es:
".$fila[referencia]." ".$fila[operacion]."
'; echo " "; echo $fila[descripcion]; echo "
'; ?>
Si lo deas puedes verlo en http://www.joseluisdeluna.es/pageID_7407536.html
".$fila[referencia]." ".$fila[operacion]."
'; echo " "; echo $fila[descripcion]; echo "
'; ?>
Si lo deas puedes verlo en http://www.joseluisdeluna.es/pageID_7407536.html

Te recomiendo que no partas las cadenas en líneas y evitarás confusiones:
<?php
/* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
<td>".$fila["referencia"]."</td>
<td>".$fila["operacion"]."</td>
";
echo "
</tr>
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
<td>";
echo $fila["descripcion"];
echo "</td>
</tr>
</table>
</td>
</tr>
";
}
echo '
</table>
';
?>
Ten en cuenta que las comillas simples y dobles aunque realizan operaciones similares no son idénticas.
Por ejemplo, para saltar de línea puedes poner \n dentro de comillas dobles pero no funcionará con comillas simples.
<?php
/* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
<td>".$fila["referencia"]."</td>
<td>".$fila["operacion"]."</td>
";
echo "
</tr>
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
<td>";
echo $fila["descripcion"];
echo "</td>
</tr>
</table>
</td>
</tr>
";
}
echo '
</table>
';
?>
Ten en cuenta que las comillas simples y dobles aunque realizan operaciones similares no son idénticas.
Por ejemplo, para saltar de línea puedes poner \n dentro de comillas dobles pero no funcionará con comillas simples.

He probado lo que sugerías pero sigue mostrando lo mismo
<?php/* listar_propiedades.php */session_start();if $_SESSION["validado"]){echo "Debe ingresar como usuario para ver esta página";die;}require("dbconnect.inc.php");$qry = "SELECT * FROM Propiedades";$res = mysql_query($qry);echo '
<table>
';while($fila = mysql_fetch_array($res)){echo '
<tr>
<td>';echo $fila["fecha"]."</td>
<td>".$fila["referencia"]."</td>
<td>".$fila["operacion"]."</td>
";echo "
</tr>
<tr>
";echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';echo "</td>
<td>";echo $fila["descripcion"];echo "</td>
</tr>
</table>
</td>
</tr>
";}echo '
</table>
';?>
Puedes repasar la página en el link que antes te dije
<?php/* listar_propiedades.php */session_start();if $_SESSION["validado"]){echo "Debe ingresar como usuario para ver esta página";die;}require("dbconnect.inc.php");$qry = "SELECT * FROM Propiedades";$res = mysql_query($qry);echo '
<table>
';while($fila = mysql_fetch_array($res)){echo '
<tr>
<td>';echo $fila["fecha"]."</td>
<td>".$fila["referencia"]."</td>
<td>".$fila["operacion"]."</td>
";echo "
</tr>
<tr>
";echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';echo "</td>
<td>";echo $fila["descripcion"];echo "</td>
</tr>
</table>
</td>
</tr>
";}echo '
</table>
';?>
Puedes repasar la página en el link que antes te dije

Ya miré la página en el link que me mencionas y la he vuelto a mirar otra vez. Evidentemente allí sólo veo el resultado, no puedo ver el código.
De todas formas, parece que no me has entendido bien, puesto que en el código que adjuntas sigues partiendo las cadenas en diferentes líneas. ¿Has probado el código que te envié sin tocarlo?
El problema que tienes es que en la línea del while, hay un echo que abre una comilla simple y antes de cerrarla, cambias de línea.
Haz que tus comillas simples se abran y cierren en la misma línea y no tendrás problemas.
Te envío el código corregido de nuevo:
<?php/* listar_propiedades.php */session_start();if $_SESSION["validado"]){echo "Debe ingresar como usuario para ver esta página";die;}require("dbconnect.inc.php");$qry = "SELECT * FROM Propiedades";$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res)){
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
\n
<td>".$fila["referencia"]."</td>
\n
<td>".$fila["operacion"]."</td>
\n";
echo "\n
</tr>
\n
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
\n
<td>";
echo $fila["descripcion"];
echo "</td>
\n
</tr>
\n
</table>
\n</td>
\n
</tr>
\n";
}
echo '
</table>
';
?>
De todas formas, parece que no me has entendido bien, puesto que en el código que adjuntas sigues partiendo las cadenas en diferentes líneas. ¿Has probado el código que te envié sin tocarlo?
El problema que tienes es que en la línea del while, hay un echo que abre una comilla simple y antes de cerrarla, cambias de línea.
Haz que tus comillas simples se abran y cierren en la misma línea y no tendrás problemas.
Te envío el código corregido de nuevo:
<?php/* listar_propiedades.php */session_start();if $_SESSION["validado"]){echo "Debe ingresar como usuario para ver esta página";die;}require("dbconnect.inc.php");$qry = "SELECT * FROM Propiedades";$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res)){
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
\n
<td>".$fila["referencia"]."</td>
\n
<td>".$fila["operacion"]."</td>
\n";
echo "\n
</tr>
\n
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
\n
<td>";
echo $fila["descripcion"];
echo "</td>
\n
</tr>
\n
</table>
\n</td>
\n
</tr>
\n";
}
echo '
</table>
';
?>

¿He probado a dejarlo todo en una sola linea y sigo igual
cómo podría pasarte el código pa que lo veas? O pásame el código tuyo a (xxxxxx)
cómo podría pasarte el código pa que lo veas? O pásame el código tuyo a (xxxxxx)

He probado a hacer otro archivo html y sigo igual, ( www.joseluisdeluna.es/listar_propiedades.html ), el código es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.:Emailbrain Headstart Program:.</title>
<meta content="text/html; charset=iso-8859-1"
http-equiv="Content-Type">
<style type="text/css"><!--body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #000000;}body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}a { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #7d9c1b; font-weight: bold;}a:link { text-decoration: none;}a:visited { text-decoration: none; color: #7d9c1b;}a:hover { text-decoration: none; color: #7d9c1b#7d9c1b;}a:active { text-decoration: none; color: #7d9c1b;}.style1 {font-family: Arial, Helvetica, sans-serif}--></style>
<meta name="GENERATOR" content="MSHTML 6.00.6000.16809">
</head>
<body>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0"
width="691">
<!--DWLayoutTable-->
<tbody>
<tr>
<td colspan="5" height="132" valign="top">
<table style="width: 678px; height: 98px;" border="0"
cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tbody>
<tr>
<td colspan="1" rowspan="1"
style="vertical-align: top; height: 71px; width: 676px; text-align: center;"><img
style="width: 494px; height: 71px;" alt=""
src="http://www.joseluisdeluna.es/Cabecera.jpg"><br>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="501" valign="top" width="4">
<table bgcolor="#ffffff" border="0"
cellpadding="0" cellspacing="0" width="100%">
<!--DWLayoutTable-->
<tbody>
<tr>
<td height="500" width="4"></td>
</tr>
</tbody>
</table>
</td>
<td rowspan="2" bgcolor="#999999" valign="top"
width="3"></td>
<td rowspan="2" valign="top" width="676">
<?php /* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
\n
<td>".$fila["referencia"]."</td>
\n
<td>".$fila["operacion"]."</td>
\n";
echo "\n
</tr>
\n
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
\n
<td>"; echo $fila["descripcion"];
echo "</td>
\n
</tr>
\n
</table>
\n</td>
\n
</tr>
\n";
}
echo '
</table>
';
?></td>
<td rowspan="2" align="left" bgcolor="#999999"
valign="top" width="3"></td>
<td width="6"></td>
</tr>
<tr>
<td height="246"><br>
</td>
<td></td>
</tr>
<tr>
<td colspan="5" height="17" valign="top">
<div align="center"><img
src="
"
height="17" width="690"></div>
</td>
</tr>
</tbody>
</table>
</div>
<script>
function checkSkype(){
if(document.getElementById('__skype_highlight_id_right') || document.getElementById('injection_graph_func')){
return confirm("ALERTA: Este mensaje aparece ya que su navegador tiene o tuvo instalado un plugin de Skype que causa resultados inesperados al usar el editor. Para desactivar este plugin, presione el menu desplegable en la barra de Skype de su navegador y seleccione 'Remover el plugin de Skype'. En caso de que haya editado su newsletter sin haber removido este plugin, contacte con el departamento técnico en el area de SOPORTE TÉCNICO. Desea continuar (Aceptar) y acceder al editor?")
}else{
return true
}
}
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.:Emailbrain Headstart Program:.</title>
<meta content="text/html; charset=iso-8859-1"
http-equiv="Content-Type">
<style type="text/css"><!--body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #000000;}body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}a { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #7d9c1b; font-weight: bold;}a:link { text-decoration: none;}a:visited { text-decoration: none; color: #7d9c1b;}a:hover { text-decoration: none; color: #7d9c1b#7d9c1b;}a:active { text-decoration: none; color: #7d9c1b;}.style1 {font-family: Arial, Helvetica, sans-serif}--></style>
<meta name="GENERATOR" content="MSHTML 6.00.6000.16809">
</head>
<body>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0"
width="691">
<!--DWLayoutTable-->
<tbody>
<tr>
<td colspan="5" height="132" valign="top">
<table style="width: 678px; height: 98px;" border="0"
cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tbody>
<tr>
<td colspan="1" rowspan="1"
style="vertical-align: top; height: 71px; width: 676px; text-align: center;"><img
style="width: 494px; height: 71px;" alt=""
src="http://www.joseluisdeluna.es/Cabecera.jpg"><br>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="501" valign="top" width="4">
<table bgcolor="#ffffff" border="0"
cellpadding="0" cellspacing="0" width="100%">
<!--DWLayoutTable-->
<tbody>
<tr>
<td height="500" width="4"></td>
</tr>
</tbody>
</table>
</td>
<td rowspan="2" bgcolor="#999999" valign="top"
width="3"></td>
<td rowspan="2" valign="top" width="676">
<?php /* listar_propiedades.php */
session_start();
if $_SESSION["validado"])
{
echo "Debe ingresar como usuario para ver esta página";
die;
}
require("dbconnect.inc.php");
$qry = "SELECT * FROM Propiedades";
$res = mysql_query($qry);
echo '
<table>
';
while($fila = mysql_fetch_array($res))
{
echo '
<tr>
<td>';
echo $fila["fecha"]."</td>
\n
<td>".$fila["referencia"]."</td>
\n
<td>".$fila["operacion"]."</td>
\n";
echo "\n
</tr>
\n
<tr>
";
echo '
<td colspan="3">
<table>
<tr>
<td><img src="images/' . $fila["foto"] . '" width="160" height="100">';
echo "</td>
\n
<td>"; echo $fila["descripcion"];
echo "</td>
\n
</tr>
\n
</table>
\n</td>
\n
</tr>
\n";
}
echo '
</table>
';
?></td>
<td rowspan="2" align="left" bgcolor="#999999"
valign="top" width="3"></td>
<td width="6"></td>
</tr>
<tr>
<td height="246"><br>
</td>
<td></td>
</tr>
<tr>
<td colspan="5" height="17" valign="top">
<div align="center"><img
src="

height="17" width="690"></div>
</td>
</tr>
</tbody>
</table>
</div>
<script>
function checkSkype(){
if(document.getElementById('__skype_highlight_id_right') || document.getElementById('injection_graph_func')){
return confirm("ALERTA: Este mensaje aparece ya que su navegador tiene o tuvo instalado un plugin de Skype que causa resultados inesperados al usar el editor. Para desactivar este plugin, presione el menu desplegable en la barra de Skype de su navegador y seleccione 'Remover el plugin de Skype'. En caso de que haya editado su newsletter sin haber removido este plugin, contacte con el departamento técnico en el area de SOPORTE TÉCNICO. Desea continuar (Aceptar) y acceder al editor?")
}else{
return true
}
}
</script>
</body>
</html>

Para eliminar problemas y no tener que fijarte en cómo lo escribes, te recomiendo que no uses las comillas simples. Usa comillas dobles y escapa las comillas internas cuando te haga falta con la contrabarra:
Echo "
<td width=\"6\">";
Otra opción que tienes es cerra la etiqueta php y escribir directamente HTLM:
<?php
while ($a < 4) {
// Dentro del while
?>
<tr>
<td width="6">Hola
</td>
</tr>
<?php
// Todavía dentro del while
}
// Fuera del while
?>
Echo "
<td width=\"6\">";
Otra opción que tienes es cerra la etiqueta php y escribir directamente HTLM:
<?php
while ($a < 4) {
// Dentro del while
?>
<tr>
<td width="6">Hola
</td>
</tr>
<?php
// Todavía dentro del while
}
// Fuera del while
?>

Por si sirve de algo, el archivo listar_propiedades.php funciona perfectamente, los problemas los tengo cuando incluyo el código php en listar_propiedades.html

No entiendo esto último que dices. ¿No ejecutas directamente listar_propiedades.php?
¿Cómo haces esto que dices de incluirlo en listar_propiedades.html?
¿Cómo haces esto que dices de incluirlo en listar_propiedades.html?

Tengo una página en html (listar-propiedades.html) y en una parte de ella he incluido el código php de listar_propiedades.php pero la página resultante tiene la extensión html.
Debo incluir el código php o simplemente hacer una <a href> a listar_propiedades.php
Debo incluir el código php o simplemente hacer una <a href> a listar_propiedades.php

La página resultante debería tener extensión .php puesto que contiene código PHP.
Entonces, esa página es como cualquier página HTML con la diferencia de que puedes insertar trozos de código entre las etiquetas <? ¿php y?>
Así, que renombra la página html, y allí donde quieres que aparezca, escribes el código PHP entre estas dos etiquetas.
El servidor, antes de entregar la página, buscará etiquetas PHP y ejecutará lo que haya en ellas. El resultado junto con el resto de la página, es lo que enviará a tu navegador.
Entonces, esa página es como cualquier página HTML con la diferencia de que puedes insertar trozos de código entre las etiquetas <? ¿php y?>
Así, que renombra la página html, y allí donde quieres que aparezca, escribes el código PHP entre estas dos etiquetas.
El servidor, antes de entregar la página, buscará etiquetas PHP y ejecutará lo que haya en ellas. El resultado junto con el resto de la página, es lo que enviará a tu navegador.

Magnífico, funciona. Con tanto lio me había perdido en lo más obvio. Aunque me da un warning al comprobar el inicio de sesión, el error es:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web8/32/59/51867959/htdocs/mostrarpropiedades.php:14) in /mnt/web8/32/59/51867959/htdocs/mostrarpropiedades.php on line 26
¿Qué puede ser?
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web8/32/59/51867959/htdocs/mostrarpropiedades.php:14) in /mnt/web8/32/59/51867959/htdocs/mostrarpropiedades.php on line 26
¿Qué puede ser?
- Compartir respuesta
- Anónimo
ahora mismo
