PHP - Ingresar una tabla desde php... HELP!!!

 
Vista:

Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 18/01/2006 00:46:56
miren...
tengo una consulta...
como seria para agregar una tabla desde php con ciertos valores????
esto es lo que tengo
pero me lanza error

<?php
if(isset($_POST['nombre']) && !empty($_POST['data']))
// Si entramos es que todo se ha realizado correctamente
$db = "clientes";
$link = mysql_connect("localhost", "user", "lalalala");
mysql_select_db ("$db",$link);
mysql_query("CREATE TABLE {$_POST['data']}'(nombre varchar(255) NOT NULL default
'', direccion varchar(255) NOT NULL default '', ciudad varchar(255) NOT NULL de
fault '', pais varchar(255) NOT NULL default '', telefono varchar(255) NOT NULL
default '', fax varchar(255) NOT NULL default '', mail varchar(255) NOT NULL def
ault '', contacto varchar(255) NOT NULL default '', contacto1 varchar(255) NOT N
ULL default '', contacto2 varchar(255) NOT NULL default '', PRIMARY KEY (nombre
), KEY nombre (nombre)) TYPE=MyISAM COMMENT='Sistema de Administracion de Client
es';)",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "error. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}

?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ingresar una tabla desde php... HELP!!!

Publicado por Mike79 (669 intervenciones) el 18/01/2006 03:48:27
¿Y cual es el error que te sale?.
No es mucha ayuda si no dices el error, pero bueno, veamos.

A simple vista, tienes un error donde dice:
{$_POST['data']}'(nombre
Tienes una comilla de más, deberia ser:
{$_POST['data']}(nombre

Espero que sea eso, y si no, no dudes en volver a preguntar, pero dinos en donde esta el error.

Un ejercicio muy bueno, es que mandes a imprimir el sql en la página web, para poder teclearlo directamente sobre la linea de comandos de mysql, y ver los errores que marca.

Otro detalle, no le veo mucho caso que lo ponga Not Null si el default es '' no tiene sentido. Yo que tú, declalaria el sql de la siguiente forma:

"CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary key, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono varchar(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 varchar(255), Contacto2 varchar(255))"

Donde Nombre lo limitamos a 100 Caracteres
Dirección lo dejamos a 255 por que hay Direcciones muy largas
¿Conoces ciudades de más de 50 letras? La verdad son incomadas de escribir.
País pues.... yo no conosco el País de Supercalifragilisticoespiralidoso y si lo conociera, serian menos de 30 letras. Lo más largo podria ser por ejemplo: "Estados Unidos de America", pero generalmente esos Países se abrevian.
Telefono, no se en tú país (no se de que país eres), pero en el mío todos los telefonos son de 10 números, si acaso de 13 para agregarles la lada y/o las marcaciones especiales, como el 044 para celulares.
Fax lo mismo
Mail, aunque pueden ser de 255 caracteres en total (incluyendo la @), en la practica la persona que tenga que escribir más de 100 letras para su correo, que se de un tiro, la verdad.
Contacto, Contacto1 y Contacto2 no se para que los uses, por eso los deje igual.

Si observas, declare primary key en la misma linea, quite lo de MyISAM, y la descripción, si todas las tablas van a tener la misma descripción no veo el caso de usarlas, por ultimo, para poder identificar esas tablas del resto de las tablas (suponiendo que tienes otros tipos de tablas), yo le agrege un "Prefijo_" que puede ser por ejemplo, AdminClient_ esto para que cuando tú veas una tabla que empieza de esa forma, sepas que es una tabla de Administrador de Clientes, con tan solo ver el nombre de la tabla.

Saludos, espero te gusten mis ideas!
-
Miguel Angel
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 18/01/2006 04:05:59
lo puse de esta forma...
que esta mal????

<?php
if(isset($_POST['nombre']) && !empty($_POST['data:']))
$db = "clientes";
$link = mysql_connect("localhost", "user", "lallalala");
mysql_select_db ("$db",$link);
mysql_query("CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary k
ey, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono varc
har(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 va
rchar(255), Contacto2 varchar(255)" NOT NULL default '', PRIMARY KEY (nombre), K
EY nombre (nombre)) TYPE=MyISAM COMMENT='Sistema de Administracion de Clientes';
)",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}
?>

ese error me sale
Parse error: parse error, unexpected T_STRING in /var/www/localhost/data/tablita.php on line 9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por Mike79 (669 intervenciones) el 18/01/2006 19:03:19
Sigues estando mal, para empezar dentro de comillas dobles, no puedes poner comillas dobles. Así que el error esta en las comillas dobles en donde dice:
Contacto2 varchar(255)" NOT

Y si pones primary key a la hora de crear la tabla, no tienes que ponerlo abajo, tu codigo deberia ser:

mysql_query("CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary k
ey, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono varc
har(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 va
rchar(255), Contacto2 varchar(255) NOT NULL default '') TYPE=MyISAM COMMENT='Sistema de Administracion de Clientes')",$link);

Saludos!
-
Miguel Angel
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 18/01/2006 20:15:16
mira puse tu codigo tal cual pero = me arrojo otro error

mira mi html es este

<form name="Sistema de Base de Datos" action="tablita.php" method="post">
<b>Nombre de la Base de Datos a Crear:</b> <input type="text" name="data"><br>
<input type="submit" value="enviar" name="enviar">
</form>

y mi php es este

<?php
if(isset($_POST['nombre']) && !empty($_POST['data:']))
$db = "clientes";
$link = mysql_connect("localhost", "user", "lalalala");
mysql_select_db ("$db",$link);
mysql_query("CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary k
ey, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono varc
har(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 va
rchar(255), Contacto2 varchar(255) NOT NULL default '') TYPE=MyISAM COMMENT='Sistema de Administracion de Clientes')",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}

?>

y este es el error que e manda

Ha habido un error al insertar los valores. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'k ey, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono va' at line 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por Mike79 (669 intervenciones) el 20/01/2006 22:06:55
El problema es que lo pusiste tal como estaba. Los enters no van, son solo por que no caben correctamente en este foro. Pero todo es una sola linea

Tienes k ey en lugar de key por que lo tienes separado.

Ese es todo el error.
Saludos!
-
Miguel Angel
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 21/01/2006 01:34:20
Ha habido un error al insertar los valores. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varcchar(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contact' at line 1

e ahi el error...
:(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 21/01/2006 01:43:04
eso ya lo arregle...
y ahora mi problema es el siguiente

<?php
if(isset($_POST['nombre']) && !empty($_POST['data:']))
$db = "clientes";
$link = mysql_connect("localhost", "user", "lallala");
mysql_select_db ("$db",$link);
mysql_query("CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary key, Direccion varchar(255), Ciudad varchar(50) , Pais varchar(50), Telefono varchar(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 varchar(255), Contacto2 varchar(255) NOT NULL default '') TYPE=MyISAM COMMENT='Sistema de Administracion de Clientes')",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}

?>

con eso...
me sale esto

Ha habido un error al insertar los valores. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por Mike79 (669 intervenciones) el 21/01/2006 02:05:12
¿Estas conciente que los ultimos errores que has posteado han sido pequeños errores?.

Tienes que aprender a correjir tus propios errores.
Quitale el ultimo Parentesis, no lo lleva, y si no me crees, cuenta cuantos parentesis tienes abiertos.

Saludos!
-
Miguel Angel
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar una tabla desde php... HELP!!!

Publicado por j0ker (19 intervenciones) el 23/01/2006 00:33:25
sabes que ya he intentado buscar la solucion a mi nuevo problema...
el cual es que me arroja un error que dice "No database selected"

el codigo como lo deje al final es este

<?php
if(isset($_POST['nombre']) && !empty($_POST['data']))
$db = "clientes";
$link = mysql_connect("localhost", "user", "lalalala");
mysql_select_db ("$db");
mysql_query("CREATE TABLE Prefijo_{$_POST['data']}(Nombre varchar(100) primary key, Direccion varchar(255), Ciudad varchar(50), Pais varchar(50), Telefono varchar(10), Fax varchar(10), Mail varchar(100), Contacto varchar(255), Contacto1 varchar(255), Contacto2 varchar(255) NOT NULL default '') TYPE=MyISAM COMMENT='Sistema de Administracion de Clientes'",$link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar