Mostrar Bases de datos existentes en una pagina

Galactus
27 de Octubre del 2003
Hola

Hace poco tiempo que empece a programar en PHP y tengo que decir que me esta gustando mucho, pero como novato que soy tengo mis mas y mis menos con PHP.

Quiero mostrar en una pagina las bases de datos existentes en mysql. La orden basica para mostrarlas desde el promt de mysql es: SHOW DATABASES;

Mi problema viene cuando quiero hacer esto mismo con PHP y mostrar los resultados en una pagina.

Estoy usando el siguiente codigo PHP:

<?php
//=============================
// Pagia inicial que muestra las bases de datos accesibles por el usuario que hace login.
// by Galactus
// [email protected]
// clase.php contiene las sentencias de conexion, consulta, desconexion y vectorizar
//=============================

//Archivos requeridos
require_once ("clase.php");

//Datos de conexion
$Servidor = "localhost";
$Usuario = "root";
$Clave = "";

//conexion a BaseDatos
$BaseDatos = UniversalaBaseDatos::Conectar ($Servidor, $Usuario, $Clave);

//Consulta a BaseDatos MySql
$Consulta = "SHOW DATABASES";
$Recurso = UniversalaBaseDatos::Consultar ($Consulta, $BaseDatos);

//Mostrando resultado en pantalla
echo "<table>n";
echo "<tr>n";
echo "<td>Bases de Datos</td>n";
echo "</tr>n";
echo "</table>n";
echo "<table>n";
while ($Vector = UniversalaBaseDatos::Vectorizar ($Recurso)) {
echo "<tr>n";

//Estoy convencido que es aqui donde se encuentra mi error

echo "<td>$Vector</td>n";
echo "</tr>n";
}
echo "</table>n";

//Cerrando conexion con BaseDatos
$BaseDatos = UniversalaBaseDatos::Desconectar ($BaseDAtos);
?>

Tengo que decir que clase.php funciona perfectamente ya que la he usado para otros programas como las sesiones de usuarios o registro de usuarios.

El error que me devuelve el navegador es el siguiente:

Unknown database 'Resource id #1'

Si cambio echo "<td>$Vector</td>n"; por echo "<td>$Vector[Database]</td>n"; obtengo el mismo error.

Si lo pongo de esta manera, echo "<td>$Vector[]</td>n"; obtengo el siguiente error:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /var/www/htdocs/easydb/pagina_basedatos.php on line 33

Espero puedan ayudarme a resolver esto que me trae un poco de cabeza.

Gracias.

Galactus
27 de Octubre del 2003
Consegui solucionar el problema que tenia con este script. El problema estaba que trataba mal el bucle para mostrar la informacion.

<?php
$Servidor = "localhost";
$Usuario = "root";
$Clave = "";

//Conectar a BaseDatos MySQL
$Conexion = mysql_connect($Servidor, $Usuario, $Clave);

//Hacer Peticion a BaseDatos MySQL
$query = "SHOW DATABASES";
$resultado = mysql_query($query);

//Mostrar Resultados
echo "<table width=100% align=center>n";
echo "<tr>n";
echo "<td>n";
echo "<table border=1 cellspacing=0 cellpadding=0 align=center width=50%>n";
echo "<tr>n";
echo "<td align=center><h2>Bases De Datos MySQL</h2></td>n";
echo "</tr>n";
echo "</table>n";
echo "<br>n";
$Vector=mysql_num_rows ($resultado);
echo "<table border=1 align=center cellpadding=0 cellspacing=0>n";
for ($i=0;$i<$Vector;$i++) {
$row = mysql_fetch_array($resultado);
//echo "<table border=1 align=center cellpadding=0 cellspacing=0>n";
echo "<tr>n";
echo "<td width=200 align=center>$row[0]</td>n";
echo "</tr>n";
//echo "</table>n";
}
echo "</table>n";
echo "</td>n";
echo "</tr>n";
echo "</table>n";
mysql_close ($Conexion);
?>