Foros del Web » Programando para Internet » PHP »

problema con creación de base de datos

Estas en el tema de problema con creación de base de datos en el foro de PHP en Foros del Web. Hola, muy buenas tardes, el caso es que estoy (mas bien estamos en clase) aprendiendo a realizar operaciones con bases de datos (en MYSQL) a ...
  #1 (permalink)  
Antiguo 20/02/2011, 11:24
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
problema con creación de base de datos

Hola, muy buenas tardes, el caso es que estoy (mas bien estamos en clase) aprendiendo a realizar operaciones con bases de datos (en MYSQL) a través de PHP, pues bien, recientemente el profesor nos dio un ejercicio a modo de ejemplo ya resuelto, y el caso es que falla, he estado comprobando varias veces las variables, haciendo inserciones en el código para averiguar hasta donde llegaba y haga lo que haga no consigo dar con el problema, el caso es que el programa se detiene en la parte que dice "ERROR: Imposible crear base de datos $basedatos" os dejo el código por si me podeis ayudar:

Código PHP:
<?

include("datos.php");
$sql_crearbasedatos"CREATE DATABASE $basedatos";

$tabla1="usuarios";
$sql_creartabla1="CREATE TABLE $tabla1(";
$sql_creartabla1.="usuario VARCHAR(10) PRIMARY KEY,clave VARCHAR(10), tipo VARCHAR(15) NOT NULL);";
$sql_insertarregistros1="INSERT INTO $tabla1 VALUES ";
$sql_insertarregistros1.="('usuario','usuario','usuario')";
$sql_insertarregistros1.="('admin','admin','admin')";
$sql_insertarregistros1.="('invitado','invitado','invitado')";

$tabla2="agenda";
$sql_creartabla2="CREATE TABLE $tabla2(";
$sql_creartabla2.="nombre VARCHAR(50) PRIMARY KEY,telefono VARCHAR(10) NOT NULL);";
$sql_insertarregistros2="INSERT INTO $tabla2 VALUES ";
$sql_insertarregistros2.="('usuario','955970000')";
$sql_insertarregistros2.="('admin','955979999')";
$sql_insertarregistros2.="('invitado','955971234')";

$conexion=mysql_connect($servidor$usuario_bd ,$clave_bd);
if(!
$conexion){
        echo 
"ERROR: Imposible establecer conexión con el servidor";
           }
else{  
     
$resultado=mysql_query($sql_crearbasedatos$conexion);
     
/*echo $sql_crearbasedatos;
     echo "<br><br>";
     echo $conexion;
     echo "<br><br>";*/
     
echo $resultado;
     if(!
$resultado){
         echo 
"ERROR: Imposible crear base de datos $basedatos.<br>";
     }
     else{

     
$resultado=mysql_select($basedatos$conexion);
     if(!
$resultado){
            echo 
"Imposible seleccionar la base de datos $basedatos.<br>";
            }
            else{
            
//TABLA1
             
$resultado=mysql_query($sql_creartabla1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible crear la tabla $tabla1.<br>";
                    }
             
$resultado=mysql_query($sql_insertarregistros1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible insertar en tabla $tabla1.<br>";
                    }
            
//TABLA2
             
$resultado=mysql_query($sql_creartabla1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible crear la tabla $tabla2.<br>";
                    }
             
$resultado=mysql_query($sql_insertarregistros2$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible insertar en tabla $tabla2.<br>";
                    }
            }
//else anterior        
    
//else 2
    
mysql_close($conexion);
//else mayor
?>
Un saludo y muchas gracias de antemano.
  #2 (permalink)  
Antiguo 20/02/2011, 11:52
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con creación de base de datos

Código PHP:
Ver original
  1. $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  2.         mysql_select_db($dbname,$link);
  3.  
  4. $sql = 'CREATE TABLE usuarios (
  5. ID int(8) unsigned NOT NULL auto_increment,
  6. username varchar(20),
  7. password varchar(25),
  8. email varchar(40),
  9. PRIMARY KEY (ID)
  10. );';
  11. mysql_query($sql,$link) or die('No se pudo conectar a la base de datos');
  12. $sql2 = 'CREATE TABLE imagenes (
  13. ID int(8) unsigned NOT NULL auto_increment,
  14. us varchar(20),
  15. nombre varchar(25),
  16. url varchar(100),
  17. fecha varchar(100),
  18. user varchar(20),
  19. PRIMARY KEY (ID)
  20. );';
  21. mysql_query($sql2,$link)  or die('No se pudo conectar a la base de datos');

Ese código te va a servir mucho,
  #3 (permalink)  
Antiguo 20/02/2011, 12:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con creación de base de datos

Lo primero que deberías hacer es recuperar el error devuelto por MySQL, para ver por qué no pudo ejecutar el CREATE DATABASE:
Código PHP:
$resultado=mysql_query($sql_crearbasedatos$conexion
or die(
"Error al crear la base: ".mysql_error()); 
AL menos de esa forma podemos saber por dónde comenzar...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 20/02/2011, 12:19
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con creación de base de datos

Muchas gracias por las respuestas dadas hasta ahora, pruebo lo propuesto y en un rato os comento!
  #5 (permalink)  
Antiguo 20/02/2011, 12:27
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con creación de base de datos

Muy bien, de momento el resultado es el siguiente: "Error al crear la base: Can't create database 'agendaphp'; database exists", lo que quiere decir que la base de datos ya existe; he probado a eliminar la base de datos (agendaphp, he de decir que este nombre de la base de datos es importado del archivo datos.php)

DATOS.PHP:

Código PHP:
<?
//Datos generales para la aplicaciión webs
$servidor="localhost";
$usuario_bd="root";
$clave_bd="toor";
$basedatos="agendaphp";
?>
Al eliminar la base de datos ya existente llamada "agendaphp" e intentar reejecutar el código el error que me lanza es el siguiente:

"1 Fatal error: Call to undefined function mysql_select() in /var/www/agenda/crearbdytablas.php on line 36 "

Os reinserto el código para que veáis:

Código PHP:
<?

include("datos.php");
$sql_crearbasedatos"CREATE DATABASE $basedatos";

$tabla1="usuarios";
$sql_creartabla1="CREATE TABLE $tabla1(";
$sql_creartabla1.="usuario VARCHAR(10) PRIMARY KEY,clave VARCHAR(10), tipo VARCHAR(15) NOT NULL);";
$sql_insertarregistros1="INSERT INTO $tabla1 VALUES ";
$sql_insertarregistros1.="('usuario','usuario','usuario')";
$sql_insertarregistros1.="('admin','admin','admin')";
$sql_insertarregistros1.="('invitado','invitado','invitado')";

$tabla2="agenda";
$sql_creartabla2="CREATE TABLE $tabla2(";
$sql_creartabla2.="nombre VARCHAR(50) PRIMARY KEY,telefono VARCHAR(10) NOT NULL);";
$sql_insertarregistros2="INSERT INTO $tabla2 VALUES ";
$sql_insertarregistros2.="('usuario','955970000')";
$sql_insertarregistros2.="('admin','955979999')";
$sql_insertarregistros2.="('invitado','955971234')";

$conexion=mysql_connect($servidor$usuario_bd ,$clave_bd);
if(!
$conexion){
        echo 
"ERROR: Imposible establecer conexión con el servidor";
           }
else{  
     
$resultado=mysql_query($sql_crearbasedatos$conexion
     or die(
"Error al crear la base: ".mysql_error());  

     echo 
$resultado;
     if(!
$resultado){
         echo 
"ERROR: Imposible crear base de datos $basedatos.<br>";
     }
     else{

 
/*LINEA 36*/                        $resultado=mysql_select($basedatos$conexion);
     if(!
$resultado){
            echo 
"Imposible seleccionar la base de datos $basedatos.<br>";
            }
            else{
            
//TABLA1
             
$resultado=mysql_query($sql_creartabla1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible crear la tabla $tabla1.<br>";
                    }
             
$resultado=mysql_query($sql_insertarregistros1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible insertar en tabla $tabla1.<br>";
                    }
            
//TABLA2
             
$resultado=mysql_query($sql_creartabla1$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible crear la tabla $tabla2.<br>";
                    }
             
$resultado=mysql_query($sql_insertarregistros2$conexion);
                 if(!
$resultado){ 
                    echo 
"Error: imposible insertar en tabla $tabla2.<br>";
                    }
            }
//else anterior        
    
//else 2
    
mysql_close($conexion);
//else mayor
?>
Por qué demonios falla esa linea, no lo entiendo, estoy perdido la verdad...

Edito: Tras el fallo de la linea 36, recargo y vuelve el fallo de que la base de datos ya existe, la borro y volvemos a lo mismo, es decir fallo en la 36 y así todo el rato;
Edito 2: la línea 36 esta indicada con un comentario

Última edición por zxmanu_3; 20/02/2011 a las 12:36
  #6 (permalink)  
Antiguo 20/02/2011, 12:59
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con creación de base de datos

porque es mysql_select_db(); y no mysql_select
  #7 (permalink)  
Antiguo 20/02/2011, 13:07
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con creación de base de datos

Cita:
Iniciado por marcofbb Ver Mensaje
porque es mysql_select_db(); y no mysql_select
Efectivamente, eso ha solucionado el problema que existia... ahora me muestra

"Error: imposible insertar en tabla usuarios.
Error: imposible crear la tabla agenda.
Error: imposible insertar en tabla agenda."

a ver, lo toqueteo un poco a ver si lo apaño! muchas gracias
  #8 (permalink)  
Antiguo 20/02/2011, 13:49
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con creación de base de datos

Guíate con el ejemplo que puse:

Código PHP:
Ver original
  1. $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  2. &#160;       mysql_select_db($dbname,$link);
  3. &#160;
  4. $sql = 'CREATE TABLE usuarios (
  5. ID int(8) unsigned NOT NULL auto_increment,
  6. username varchar(20),
  7. password varchar(25),
  8. email varchar(40),
  9. PRIMARY KEY (ID)
  10. );';
  11. mysql_query($sql,$link) or die('No se pudo conectar a la base de datos');
  12. $sql2 = 'CREATE TABLE imagenes (
  13. ID int(8) unsigned NOT NULL auto_increment,
  14. us varchar(20),
  15. nombre varchar(25),
  16. url varchar(100),
  17. fecha varchar(100),
  18. user varchar(20),
  19. PRIMARY KEY (ID)
  20. );';
  21. mysql_query($sql2,$link) &#160;or die('No se pudo conectar a la base de datos');


Cualquier duda o pregunta, seguí respondiendo este hilo que yo lo estoy siguiendo, saludos
  #9 (permalink)  
Antiguo 20/02/2011, 15:14
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con creación de base de datos

Cita:
Iniciado por marcofbb Ver Mensaje
Cualquier duda o pregunta, seguí respondiendo este hilo que yo lo estoy siguiendo, saludos
Muchas gracias Macofbb por toda la ayuda, la verdad es que el ejemplo que me pusistes hay ciertas cosas que no logro entender muy bien, lo iré revisando e intentare comprenderlo y cualquier duda te la preguntaré, ya que no soy muy dado a la programación...

Edito: le he dedicado un rato al código que me has puesto y lo entendí y se aplicar! muchas gracias por la ayuda!

Última edición por zxmanu_3; 20/02/2011 a las 15:37

Etiquetas: creación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.