Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: patas_air en 22 Noviembre 2006, 05:20 am



Título: no consigo insertar datos a una tabla
Publicado por: patas_air en 22 Noviembre 2006, 05:20 am
Pues si...sigo sin poder insertar datos en una tabla...lo he hecho de esta forma

$insert=mysql_query("INSERT into tabla VALUES ('$var1','$var2')", $link) or die (mysql_error());

Pero necesito hacerlo usando una variable para el nombre de la tabla por ejemplo: $tabla, y lo haog asi

$insert=mysql_query("INSERT into '".$tabla."' VALUES ('$var1','$var2')", $link) or die (mysql_error());

Pero no lo consigo...me surge un error de sintaxis en mi sentencia SQL...que puedo hacer...me urge su ayuda... :-(



Título: Re: no consigo insertar daos a una tabla
Publicado por: дٳŦ٭ en 22 Noviembre 2006, 05:51 am
Pues si...sigo sin poder insertar datos en una tabla...lo he hecho de esta forma

$insert=mysql_query("INSERT into tabla VALUES ('$var1','$var2')", $link) or die (mysql_error());

Pero necesito hacerlo usando una variable para el nombre de la tabla por ejemplo: $tabla, y lo haog asi

$insert=mysql_query("INSERT into '".$tabla."' VALUES ('$var1','$var2')", $link) or die (mysql_error());

Pero no lo consigo...me surge un error de sintaxis en mi sentencia SQL...que puedo hacer...me urge su ayuda... :-(



Revisa la sintaxis del "INSERT", si corresponden $var2, $var3, etc.. a la misma.

Pon el código sql de tu tabla  ;)

Suerte!


Título: Re: no consigo insertar daos a una tabla
Publicado por: Ertai en 22 Noviembre 2006, 09:47 am
Antes de ejecutar la query, haz un print de ella, y así seguramente ves el error. Sino, coje la SQL y metela en el phpMyAdmin, que te da más info del error.

Saludos.


Título: Re: no consigo insertar daos a una tabla
Publicado por: alone-in-the-chat en 22 Noviembre 2006, 15:36 pm
$insert=mysql_query("INSERT into '".$tabla."' VALUES ('$var1','$var2')", $link) or die (mysql_error());
---------------------------

parece que le estas poniendo comillas simples ''
al nombre de la tabla

deberia ser asi


$insert=mysql_query("INSERT into ".$tabla." VALUES ('$var1','$var2')", $link) or die (mysql_error());

las comillas simples son para los valores a insertar ;)



Título: Re: no consigo insertar daos a una tabla
Publicado por: patas_air en 22 Noviembre 2006, 16:53 pm
Ahora obtengo esto al poner el SQL en phpMyAdmin

Error

consulta SQL :

"INSERT into ".$n_tabla."  VALUES ('$var1', '$var2', '$var3', '$var4')"

MySQL ha dicho:

#1064 - 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 '"INSERT into ".$n_tabla. "  VALUES ('$n_ctrl', '$nom', '$ap', '


Ahora que hice mal...????  :-\


Título: Re: no consigo insertar daos a una tabla
Publicado por: alone-in-the-chat en 22 Noviembre 2006, 17:08 pm
podrias pegar  tu codigo completo??
asi puedo intentar ayudarte mejor .



...


Título: Re: no consigo insertar daos a una tabla
Publicado por: patas_air en 22 Noviembre 2006, 17:13 pm
<form method="POST" action="admon.php">
                      No. Control: <input type="text" name="n_ctrl">
                      Nombre: <input type="text" name="nombre">
                      Apellidos: <input type="text" name="apellidos">
                      Semestre: <input type="text" name="semestre">
                      <br>
                      <br>
                      <input type="submit" name="enviar" value="Enviar">
                      </form>
                    <?php
                      if ($_POST)
                       {
                        $n_ctrl=$_POST['n_ctrl'];
                        $nom=$_POST['nombre'];
                        $ap=$_POST['apellidos'];
                        $sem=$_POST['semestre'];
                        $insert=mysql_query("INSERT into ".$n_tabla."(no_control,nombre,apellidos,semestre) VALUES ('$n_ctrl', '$nom', '$ap', '$sem')", $link) or die (mysql_error());
                        echo "registro insertado"; ?>

$n_tabla se obtiene de un select ...en donde uno elige con que tabla trabajar...


Título: Re: no consigo insertar daos a una tabla
Publicado por: alone-in-the-chat en 22 Noviembre 2006, 17:20 pm
ok mira alli o la variable $n_tabla puede estar vacia
 o si te fijas bien en esta linea
------------
$insert=mysql_query("INSERT into ".$n_tabla."(no_control,nombre,apellidos,semestre) VALUES ('$n_ctrl', '$nom', '$ap', '$sem')", $link) or die (mysql_error());
-------------
donde colocas $n_tabla."(no_control....

estas mandandolo junto prueba separalos .
asi
----------------------
mysql_query("INSERT into ".$n_tabla."   (no_control,nombre,apellidos,semestre) VALUES ('$n_ctrl', '$nom', '$ap', '$sem')", $link) or die (mysql_error());

y si no es eso entonces $n_tabla esta vacia prueba haciendo un echo de ese campo  ..


avisame  como te va :P


Título: Re: no consigo insertar daos a una tabla
Publicado por: patas_air en 22 Noviembre 2006, 17:46 pm
cierto $n_tabla no tiene nada...una duda cuantos formularios por POST puedo tener en un mismo archivo...estoy usando 2 uno para elegir la tabla y otro para la accion a realizar sobre la tabla...???


Título: Re: no consigo insertar datos a una tabla
Publicado por: alone-in-the-chat en 22 Noviembre 2006, 18:09 pm
puedes tener la cantidad que quieras pero tu archivo php manejara solo el que te submites a la vez me imagino que pusiste dos formularios en tu aplicacion en uno ponias los datos y en otro ponias la tabla a elegir verdad??
pues cuando haces el submit del formulario de  datos no envies la data del formulario de la tabla es por eso que tu variable no tenia nada
prueba a meterlas todas en un mismo formulario o si se requiere dos usa una funcion javascript para que al seleccionar un campo de tu select de tablas puedas llenar un campo oculto en tu formulario de datos y de esa manera se pueda enviar tambien la tabla seleccionada...
suerte..


Título: Re: no consigo insertar datos a una tabla
Publicado por: patas_air en 22 Noviembre 2006, 18:16 pm
si...de hecho tenía 2 form de tipo select ..uno para tablas y otro para las acciones...pero me he decidido hacerlo por medio de links internos (elegir las acciones)....me recomiendas hacer las acciones dentro del mismo archivo o usar otros archivos y pasarles solo el nombre de la tabla..???


Título: Re: no consigo insertar datos a una tabla
Publicado por: Hans el Topo en 25 Noviembre 2006, 00:12 am
una de las cosas buenas k tiene php es que no hace falta k vaias concatenando variables... lo de las comillas en el nombre de tabla decir que se pueden poner tanto en todos los nombres como en las tablas


Código:
mysql_query("INSERT into $n_tabla  VALUES ('$n_ctrl', '$nom', '$ap', '$sem')", $link)

se supone k $link es un puntero a una conexión, en el código no lo abriste