Ayuda con base de datos
|
| #1 (permalink) |
| Miembro Registrado: marzo 2006 Mensajes: 37 | Hola a toEstoy intentando crear una pagina web en php y sql. Creo el siguiente archivo php: Código: <?
$servidor="127.0.0.1";
$usuario_bd="root";
$clave_bd="";
$basedatos="Anime";
$tabla1="series";
echo "Intentando establecer conexión con el servidor: $servidor.<br>\n";
$conexion=mysql_connect($servidor,$usuario_bd,$clave_bd);
if (! $conexion){
echo "ERROR: Imposible establecer conexión con el servidor.<br>\n";
exit;
}else{
print "Comprobando si la base de datos $basedatos existe en el servidor.<br>\n";
$existe = "NO" ;
echo "Intentando obtener una lista de las bases de datos del servidor.<br>\n";
$listabasesdatos = mysql_list_dbs();
echo "Intentando obtener el número de bases de datos del servidor.<br>\n";
$numerobasesdatos = mysql_num_rows($listabasesdatos);
print "Hay $numerobasesdatos bases de datos:<br>\n";
for ($i=0; $i<$numerobasesdatos; $i++) {
$unabasedatos=mysql_dbname($listabasesdatos, $i);
echo "Base de datos $i: $unabasedatos<br>\n";
if ($unabasedatos == $basedatos) {
$existe = "SI" ;
echo "Base de datos: $basedatos encontrada en el servidor.<br>\n";
}
}
if ($existe == "NO") { // si no existe la base de datos la creamos
echo "No existía la base de datos. Intentando crearla...<br>\n";
if (!mysql_query("CREATE DATABASE $basedatos", $conexion)) {
echo "ERROR: Imposible crear base de datos $basedatos.<br>\n";
mysql_close($conexion);
exit;
}else{
echo "Base de datos $basedatos creada satisfactoriamente.<br>\n";
}
}
print "Comprobando si la tabla $tabla1 existe en la base de datos.<br>\n";
$existe = "NO" ;
echo "Intentando obtener una lista de las tablas en la base de datos.<br>\n";
$listatablas = mysql_listtables ($basedatos);
echo "Intentando obtener el número de tablas de la base de datos.<br>\n";
$numerotablas = mysql_num_rows($listatablas);
print "Hay $numerotablas tablas:<br>\n";
$i = 0;
while ($i < $numerotablas) {
$vectornombrestablas[$i] = mysql_tablename ($listatablas, $i);
echo "Tabla $i: " . $vectornombrestablas[$i] . "<BR>\n";
if ($vectornombrestablas[$i] == $tabla1) {
$existe = "SI" ;
echo "Tabla: $tabla1 encontrada en el servidor.<br>\n";
}
$i++;
}
if ($existe == "NO") { // si no existe la tabla la creamos
echo "No existía la tabla. Intentando crearla...<br>\n";
echo "Intentamos crear la tabla $tabla1, con una instrucción SQL.<br>\n";
$sql = "CREATE TABLE $tabla1 (";
$sql .= "nombre CHAR(50), ";
$sql .= "director CHAR(50), ";
$sql .= "anyo YEAR (4), ";
$sql .= "capitulos CHAR(255), ";
$sql .= "genero CHAR(50), ";
$sql .= "KEY (Nombre) ) ";
//$sql = 'ALTER TABLE `series` DROP INDEX `nombre`, ADD PRIMARY KEY (`nombre`)';
if (!mysql_db_query($basedatos, $sql, $conexion)) {
echo "Imposible crear la tabla.<br>\n";
}else{
echo "La tabla se ha creado con éxito. Insertando registro...<br>\n";
$sql = "INSERT INTO $tabla1 VALUES (";
$sql .= "Naruto, 'sdfds', '2002', '181', 'ninjas')";
if (!mysql_db_query($basedatos, $sql, $conexion)) {
echo "No se ha podido insertar el registro en la tabla.<br>";
}else{
echo "Registro insertado con éxito.<br>";
}
}
}
//Mostramos los registros:
$resultado = mysql_query("SELECT nombre,director,anyo,capitulos,genero FROM $tabla1, $conexion");
echo "<br>REGISTROS DE $tabla1:<br>\n";
while ($fila = mysql_fetch_row($resultado)){
echo "$fila[0] : $fila[1] : $fila[2] : $fila[3] : $fila[4]<br> \n";
}
mysql_close($conexion);
}
echo "<br>FIN.<br>";
?>
Alguien sabe porque me da fallos. Agradeceria mucho que alguien lo probara con su servidor apache si pudiese ser y viese el error. Gracias de antemano Editado por kakashi_® en 23 abr 2006 a las 21:25. |
| | |
|
| #2 (permalink) | |
| Miembro Registrado: marzo 2006 Mensajes: 37 | Hola de nuevo He conseguido hacer que me vaya bien, el error era que no marcaba con ' simple un valor: mal Código PHP: Código PHP: Cita:
Código PHP: Otro problemita es que nombre lo tengo como primary key pero no me lo coje como primary key, me pone nombre - index - nombre, algo asi como primary key. Espero me ayuden | |
| | |
|
| #3 (permalink) |
| Moderador Registrado: febrero 2005 Ubicación: México Mensajes: 4.331 | Kahashi, el problema que creo que pasa es la forma en como estás asignando el resultado del query a la variable. Prueba con esto que es reasignando el resultado a un array: Código PHP: Saludos |
| Every wall is a door. Ralph Waldo Emerson | |
| | |
|
| #4 (permalink) | ||
| Miembro activo Registrado: junio 2004 Ubicación: Detrás de ti! Mensajes: 178 | Hola, Cita:
Código PHP: Cita:
Código PHP: Espero haberte ayudado Por cieeerto, eres fan de Naruto? Jeje, a mí me encanta esa serie! ^^ Saludines, | ||
| When I fall into regret, I stumble with the words... They remind me that, they remind me that... Everything in ebb, everything has led me... to right now... somehow. | |||
| | |
|
| #5 (permalink) |
| Moderador Registrado: febrero 2005 Ubicación: México Mensajes: 4.331 | Vaya Spacey... tu si que lees a detalle... a mi se me paso ese error en la consulta y como alguna vez llegue a tener ese problema al asignar variables a un array... Saludines |
| Every wall is a door. Ralph Waldo Emerson | |
| | |
|
| #6 (permalink) |
| Miembro activo Registrado: junio 2004 Ubicación: Detrás de ti! Mensajes: 178 | Jeje... Bueno, no es eso, pero como comentaba antes, ese tipo de error normalmente viene dado porque la consulta no ha devuelto resultados, bien porque está mal escrita, bien porque no hay conexión al host o no se ha seleccionado la base de datos... Pero como en su script ya comprueba el host y la db, pues lo único que queda por mirar es el query Saludines, |
| When I fall into regret, I stumble with the words... They remind me that, they remind me that... Everything in ebb, everything has led me... to right now... somehow. | |
| | |
|
| #7 (permalink) |
| Miembro Registrado: marzo 2006 Mensajes: 37 | Gracias por vuestra ayuda spacey y the_ma3x He probado los codigos que me habeis puesto y me sigue dando el mismo error. He probado primero el the_ma3x y me crea la base de datos y me inserta el registro en la tabla pero me sigue dando error en su codigo, exactamente en la linea donde pone: Código PHP: Código PHP: PD: Si, me gusta naruto. Otra cosa, no se si mi codigo de insertar datos es el correcto, os lo pongo y me deciis: Insertar html Código PHP: Código PHP: Editado por kakashi_® en 24 abr 2006 a las 21:09. |
| | |
|
| #8 (permalink) |
| Moderador Registrado: febrero 2005 Ubicación: México Mensajes: 4.331 | Hice un par de cambios al código. Mi primera sugerencia sería que separaras el código. Es un poco complicada la validación que estas haciendo. Modifique ciertos operadores en algunas sentencias y cambie de lugar la inserción de datos. Ya que de la otra forma, no queda. Basta con modificar un par de cosillas, entre ellas esta sentencia: Código PHP: Código PHP: Saludos |
| Every wall is a door. Ralph Waldo Emerson | |
| | |
|
| #9 (permalink) | |
| Miembro Registrado: marzo 2006 Mensajes: 37 | Gracias por responder de nuevo pero ahora va mucho peor jo Te cuento: Creo un archivo nuevo con tu codigo, elimino la base de datos de mi servidor y la intento crear con tu codigo, pues bien, me dice base de datos creada pero no esta Al ejecutarlo me da esto: Cita:
No se porque me falla. Los codigo squ epuse de insertar datos, estan bien?? me hace como que insertan pero luego la base de datos sigue vacia. Help!! | |
| | |
|
| #10 (permalink) |
| Moderador Registrado: febrero 2005 Ubicación: México Mensajes: 4.331 | kakashi, Hagamos lo siguiente. Divide tu código en 3 funciones diferentes: Comprobación y/o creación de la Base de Datos Comprobación y/o creación de la Tabla Y por último la inserción de datos. Usalo como 3 funciones diferentes. Y te aconsejaría que usaras el código que pone Spacey. CREATE DATABASE IF NOT EXISTS, y CREATE TABLE IF NOT EXISTS Creo que sería mucho más facil entender el código y analizar los errores. Saludines |
| Every wall is a door. Ralph Waldo Emerson | |
| | |
| Herramientas | |
| Estilo | |
| Tema | Iniciado por | Foro | Respuestas | Último mensaje |
| Crear base de datos con phpmyadmin | kakashi_® | Programación | 3 | 10 abr 2006 03:23 |
| Base de Datos | epincho | Programación | 15 | 22 ago 2005 10:45 |
| Restaurar Base Datos Php En Foro 2.0.16 | roberto88 | Programación | 4 | 27 jul 2005 18:50 |
| base de datos acces dañada | MiNeRvA6791 | Software | 1 | 13 jul 2005 02:10 |
| Ayuda Error conexion base datos | Cris27 | Programación | 1 | 22 abr 2005 00:02 |

Modo lineal