Mostrar Base de datos mediante un select de un servidor SQL con PHP

      • 23
      • mensajes
      • miembro desde
      • 09/01/07
    #1 Mostrar Base de datos mediante un select de un servidor SQL con PHP

    Bueno como dice el título estoy intentando hacer un generador de consultas SQL en PHP.

    Éste es parecido a el del phpMyAdmin. Lo que quiero hacer es que al conectarse a un servidor especificando el host, el usuario y la contraseña muestre mediante un "<select>" las bases que contiene este servidor.

    Lo que quiero lograr es algo similar al phpMyAdmin que te muestra en el menú izquierdo las bases de datos existentes en el servidor.

    Espero que sea posible ya que me he quedado trabado con eso

    Saludos!

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    4 comentarios / 26416 Visitas

      • 2,741
      • mensajes
      • miembro desde
      • 15/07/05
    09/08/2008
    #2 Re: Mostrar Base de datos mediante un select de un servidor SQL con PHP

    Podrias hacer algo asi:

    Código PHP:
    $connection mysql_connect("localhost""usuario""contrasenia");
    if (!
    $connection)  {
       die(
    "No se pudo conectar a la base de datos...");
    }
    $queryString "SHOW DATABASES;";
    $result mysql_query($queryString);
    if (!
    $result) {
        echo 
    "<p>No hay bases de datos disponibles</p>";
    } else {
        echo 
    "<SELECT id="databaseField">";
        while (
    $result_row mysql_fetch_row($result)) {
                echo 
    "<OPTION value=\""$result_row[0] ."\"/>";
       }
       echo 
    "</SELECT>";

    Con eso deberia andar, es decir creas una conexion con la base de datos mysql, y despues ejecutas la conslta SHOW DATABASES; que basicamente hace que MySQL te traiga en una unica columna todas las bases de datos, luego iteras por cada fila de resultados y le pedis la primer columna (index 0) que te trae el nombre de la base de datos...

    Y luego yo ahi puse que te vaya imprimiendo los <select> <option/> <option/> </select> con cada base de datos....

    El codigo lo hice asi al aire sin probarlo asi que puede fallar por algun punto y coma o alguna comilla mal escapada que me comi pero la idea es esa.

    Saludos
    Pablo
      • 23
      • mensajes
      • miembro desde
      • 09/01/07
    09/08/2008
    #3 Re: Mostrar Base de datos mediante un select de un servidor SQL con PHP

    Muchas gracias, en MySQL anda de 10

    Pero mis pruebas son en SQL, yo creí que eran las mismas consultas; procedimientos; etc; etc; pero parece que no, ya que si intento mostrarlas con SQL sale que no encontró el procedimiento "show", es como que no cuenta el espacio

    mssql_query() [function.mssql-query]: message: No se encontró el procedimiento almacenado 'show'. (severity 16)
    Al fiiiiiiiiiiiiin

    Gracias ExtrañoInocente que me guiaste un poco y encontré el procedimiento , en vez de "show databases" para mssql es "exec sp_databases".

    Gracias por todo, seguiré con mi generador de consultas

    Saludos!
      • 568
      • mensajes
      • miembro desde
      • 25/01/05
    09/08/2008
    #4 Re: Mostrar Base de datos mediante un select de un servidor SQL con PHP

    $db = new mysqli($host, $user, $pass);
    $res = $db->query("show databases");

    while($row = $res->fetch_assoc())
    {
    echo $row['Database']);
    }

      • 1
      • mensajes
      • miembro desde
      • 23/02/12
    23/02/2012
    #5 Re: Mostrar Base de datos mediante un select de un servidor SQL con PHP
    Cita Escrito por SPIELMEISTER Ver mensaje
    Podrias hacer algo asi:

    Código PHP:
    $connection mysql_connect("localhost""usuario""contrasenia");
    if (!
    $connection)  {
       die(
    "No se pudo conectar a la base de datos...");
    }
    $queryString "SHOW DATABASES;";
    $result mysql_query($queryString);
    if (!
    $result) {
        echo 
    "<p>No hay bases de datos disponibles</p>";
    } else {
        echo 
    "<SELECT id="databaseField">";
        while (
    $result_row mysql_fetch_row($result)) {
                echo 
    "<OPTION value=\""$result_row[0] ."\"/>";
       }
       echo 
    "</SELECT>";

    Con eso deberia andar, es decir creas una conexion con la base de datos mysql, y despues ejecutas la conslta SHOW DATABASES; que basicamente hace que MySQL te traiga en una unica columna todas las bases de datos, luego iteras por cada fila de resultados y le pedis la primer columna (index 0) que te trae el nombre de la base de datos...

    Y luego yo ahi puse que te vaya imprimiendo los <select> <option/> <option/> </select> con cada base de datos....

    El codigo lo hice asi al aire sin probarlo asi que puede fallar por algun punto y coma o alguna comilla mal escapada que me comi pero la idea es esa.

    Saludos
    Pablo
    el codigo esta bueno este esta probado
    <?php
    $connection = mysql_connect("localhost", "user", "password");
    if (!$connection) {
    die("No se pudo conectar a la base de datos...");
    }
    $queryString = "SHOW DATABASES;";
    $result = mysql_query($queryString);
    if (!$result) {
    echo "<p>No hay bases de datos disponibles</p>";
    } else {
    echo "<SELECT id='databaseField'>";
    while ($result_row = mysql_fetch_row($result)) {
    echo "<OPTION value=". $result_row[0] .">".$result_row[0]."</option>";

    }
    echo "</SELECT>";
    }
    ?>
IR ARRIBA