<? 
# nos conectamos al servidor

$conexion=mysql_pconnect ("localhost","root","pepe");

# recogemos en una variable el IDENTIFICADOR DE RESULTADO
# que en este caso es una LISTA de BASES DE DATOS EXISTENTES EN EL SERVIDOR

$resultado=mysql_list_dbs($conexion);

# extraemos del IDENTIFICADOR DE RESULTADO el número de filas
            
$numero=mysql_num_rows($resultado);

# presentamos el resultado anterior
                        
echo "Hay ",$numero" bases de datos en la base $base<br>" ;

# esta sería una primera opcion de visualización del resultado
            
echo "<H2> Lista de bases usando «mysql_fetch_row»</h2><br>";

#establecemos un bucle que se interrumpira cuando se acaben las lineas
# recuerda que cuando eso ocurre devuelve FALSE
#mientras tanto el PUNTERO se irá moviendo a la linea siguiente
# cada vez que se invoca mysql_fetch_row 

#Dado que los elementos que devuelve se insertan
# en un array escalar, listamos el array

while($linea=mysql_fetch_row ($resultado)){

     foreach(
$linea as $clave=>$valor){
          echo 
"Clave:",$clave," Valor: ",$valor,"<br>";
       }    
  } 
# al ejecutar este script podrás ver, que INCLUSO EN ESTE SUPUESTO
# en el que parece no existir clave, la instrucción funciona correctamente


# probamos una segunda opcion de lectura del IDENTIFICADOR DE RESULTADO

echo "<H2> Lista de bases usando «mysql_fetch_array»</h2><br>";


# Fíjate que he tenido que «llamar» de nuevo a mysql_list_dbs
# dado que EN LA LECTURA ANTERIOR el puntero quedo APUNTANDO
# al final de IDENTIFICADOR DE RESULTADO por lo que
# si no volviera a LLAMARLO me devolveria FALSE
# AL VOLVER A INVOCARLO, el puntero se situa de nuevo
# AL COMIENZO DEL IDENTIFICADOR DE RESULTADO

$resultado=mysql_list_dbs($conexion);

# Ahora invoco mysql_fetch_array con lo que obtendré
# los datos DUPLICADOS
# una vez asociados a un ARRAY ESCALAR y la OTRA
# asociados a un ARRAY ASOCIATIVO cuyos INDICES serian
# los nombres de los campos, aunque en este caso particular
# esos nombres, como podrás observar son siempre DATABASE
# ya que no se trata de TABLAS sino de BASES DE DATOS


# el bucle y la lectura del array son idénticos a los anteriores
# con la diferencia ya mencionada, sustituir «mysql_fetch_row»
# por «mysql_fetch_array»

while($linea=mysql_fetch_array($resultado)){

     foreach(
$linea as $clave=>$valor){
          echo 
"Clave:",$clave," Valor: ",$valor,"<br>";
       }    
  } 

# Esta tercera opción utiliza la función ESPECIFICA y PARTICULAR
# «mysql_db_name» que SOLO ES APLICABLE cuando el IDENTIFICADOR DE RESULTADOS
# ha sido obtenido con «mysql_list_dbs»
# Las opciones anteriores SON GENERALES y por tanto APLICABLES
# con CUALQUIER FUNCION que devuelva UN IDENTIFICADOR DE RESULTADO


echo "<H2> Lista de bases usando «mysql_db_name»</h2><br>";

$resultado=mysql_list_dbs($conexion);

for (
$i=0;$i<$numero;$i++){

echo 
mysql_db_name($resultado,$i),"<br>"
}


# cerramos la base de datos

         
mysql_close($conexion);
?>