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... :-(
Cita de: 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... :-(
Revisa la sintaxis del "INSERT", si corresponden $var2, $var3, etc.. a la misma.
Pon el código sql de tu tabla ;)
Suerte!
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.
$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 ;)
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...???? :-\
podrias pegar tu codigo completo??
asi puedo intentar ayudarte mejor .
...
<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...
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
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...???
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..
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..???
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
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