Hola.
Os presento mi caso:
Hace un tiempo comenzé con mi web y tenía 4 archivos html.
Entre esos archivos está "calendario.html" que contiene código html (para darle formato a la web) y php (para realizar consultas).
Hace poco me dijeron que esto está mal, ya que un archivo .html no puede contener código php, porque simplemente no ejecutará.
Pero, sin embargo, en mi caso al ejecutar "calendario.html" sí que se ejecuta mi código php...
Realmente no entiendo cómo es esto posible.
Además, al añadir los ficheros "config.php" y "conexion.php" (que contienen los datos y la conexión a la base de datos, respectivamente) me da un error.
Y también he cambiado el nombre de "calendario.html" a "calendario.php" pero parece ser lo mismo.
TROZO DE PHP de una consulta "calendario.html" que no da errores:
<?php $link = mysql_connect("mysql13.000webhost.com","a4047274_noticias","******"); mysql_select_db("a4047274_noticias", $link); $result = mysql_query("SELECT * FROM valencia WHERE fecha_inicio BETWEEN '2014-01-01' AND '2014-01-31'", $link); while($row = mysql_fetch_array($result)){ echo "<hr>"; echo "Pueblo: ".$row['pueblo']."<br>"; echo "Noticia: ".$row['noticia']."<br>"; echo "Comentarios: ".$row['comentarios']."<br>"; } mysql_free_result($result); mysql_close($link); echo "<hr>"; ?>
TROZO DE PHP de una consulta de "calendario.html" antes de añadir los archivos config.php y conexion.php:
<?php /*$link = mysql_connect("mysql13.000webhost.com","a4047274_noticias","******"); mysql_select_db("a4047274_noticias", $link);*/ require_once('include/conexion.php'); $result = mysql_query("SELECT * FROM valencia WHERE fecha_inicio BETWEEN '2014-01-01' AND '2014-01-31'", $link); while($row = mysql_fetch_array($result)){ echo "<hr>"; echo "Pueblo: ".$row['pueblo']."<br>"; echo "Noticia: ".$row['noticia']."<br>"; echo "Comentarios: ".$row['comentarios']."<br>"; } mysql_free_result($result); mysql_close($link); echo "<hr>"; ?>
PD: GRACIAS.
NOTA: He modificado este mensaje porque se me había olvidado subir los archivos config.php y conexion.php, los puse en la misma carpeta que calendario.php para ver si era la ruta el error. Y funcionó al cambiar la posición de los archivos.
Aún así si alguien mira cuál sería la ruta correcta para colocarlos dentro de la carpeta include, lo agradecería.
FIN NOTA.
Bueno...
he estado mirando los archivos, y he escrito varios "echo" dentro de config.php y conexion.php, pero sigue funcionando mal y ni siquiera salen por pantalla los "echo".
A ver... voy a mostrarte cómo están organizados los archivos porque ya me vuelvo loco.
Dentro de la carpeta "fiestas", al mismo nivel están:
-carpeta include (que contiene config.php y conexion.php.
-calendario.php
-index.php
-proximas.php
-formulario.php
Y el código para enero de calendario.php es:
<?php /*$link = mysql_connect("mysql13.000webhost.com","a4047274_fiestas","urkaka12"); mysql_select_db("a4047274_fiestas", $link);*/ require_once('include/conexion.php'); $result = mysql_query("SELECT * FROM valencia WHERE fecha_inicio BETWEEN '2014-01-01' AND '2014-01-31'", $link); while($row = mysql_fetch_array($result)){ echo "<hr>"; echo "Pueblo: ".$row['pueblo']."<br>"; echo "Fiesta: ".$row['fiesta']."<br>"; echo "Comentarios: ".$row['comentarios']."<br>"; } mysql_free_result($result); mysql_close($link); echo "<hr>"; ?>
He estado cambiando varias cosas pero no sé que funciona mal. He copiado los archivos a la misma carpeta de calendario.php y he modificado el "require". También lo he cambiado por "include" y tampoco funciona.
¿Dónde están los archivos conexion.php y config.php? Los he buscado en los adjuntos pero no los he visto.
Las rutas, si tú escribes require_once ('directorio/archivo.php'); el archivo será buscado dentro de la carpeta directorio, que estará junto al archivo donde se invoca el require_once.
En tu caso si en el archivo calendario.php tuvieras esto:
<?php require_once('include/conexion.php');echo ' CODIGO DE CALENDARIO'; ?>
Y en el archivo conexion.php situado dentro de la carpeta include tuvieras esto:
<?php echo ' CODIGO DE CONEXION<br/><br/>'; ?>
Cuando escribas en tu navegador http:// ... / calendario.php debería mostrarse por pantalla esto:
CODIGO DE CONEXION
CODIGO DE CALENDARIO
Salu2