Ando retocando una aplicación (un calendario). Para uno de los cambios que le estoy haciendo, necesito conectar con una BD y sacar unos datos de allí. Lo que hago (lo que he hecho siempre) es que meto los datos de acceso al servidor de BDs en un archivo (data.php en mi caso), y lo llamo en la página con un include.
Bueno, en este caso lo llamo, me lo incluye bien, pero luego me dice que una de las variables no está declarada. He probado a cambiar de ruta el archivo, a coger las variables y meterlas directamente en el archivo para no tener que llamarlas, he probado con include_once, require, require_once, he iniciado la variable con isset($legend) antes de usarla...
La variable que me da el error es una que he llamado $legend. Esta variable tiene la función mysql_select_db. No se si el error será de la variable o de la función esa, porque las demás sí las coge bien. Incluso he hecho un echo de $legend, y me pinta 1, supongo que será que hay respuesta. Dejo aquí el código, por si me podeis ayudar a detectar el error, aunque me parece que no es de sintaxis, el mismo archivo lo uso en otra parte de la misma web y funciona perfecto.
El archivo con el acceso al servidor
Código PHP:
<?php
$s = '127.0.0.1';
$u = 'root';
$p = 'root';
$calendar = 'OK_calendar';
$conect = mysql_connect($s, $u, $p, $calendar);
$legend = mysql_select_db($calendar, $conect);
?>
Código PHP:
if(isset($_SESSION['login']) && $_SESSION['login'] == true)
{
require ("data.php"); //el archivo conflictivo
require ("cal.php"); // el archivo donde uso la función que necesita de una BD
color($_SESSION['prof']); //llamada a la función declarada en cal.php
....
}
Código PHP:
function color($prof)
{
if($legend)
{
$sql = "SELECT color FROM profesores WHERE nombre LIKE \"{$prof}\";";
$query = mysql_query($sql, $conect);
if($query)
{
$res = mysql_fetch_row($query);
if($res)
{
echo $res[0];
}else echo mysql_error();
}else echo mysql_error();
}else echo 'mal: '.mysql_error();
}
Muchas gracias.