Foros del Web » Programando para Internet » PHP »

Problema al intentar insertar datos en una tabla de mysql

Estas en el tema de Problema al intentar insertar datos en una tabla de mysql en el foro de PHP en Foros del Web. Hola a tod@s! Tengo dos tablas en mi base de datos que tienen los mismos campos y del mismo tipo. Una sirve para tener un ...
  #1 (permalink)  
Antiguo 06/05/2003, 17:09
 
Fecha de Ingreso: abril-2003
Ubicación: Zaragoza
Mensajes: 10
Antigüedad: 21 años
Puntos: 0
Problema al intentar insertar datos en una tabla de mysql

Hola a tod@s!
Tengo dos tablas en mi base de datos que tienen los mismos campos y del mismo tipo. Una sirve para tener un histórico. En primer lugar, a través de la página web, el usuario rellena un formulario y los datos se insertan correctamente en la primera tabla. Mi problema surge cuando intento insertar los datos en la tabla de histórico cuando el usuario pulsa una opción determinada.

Al principio probe con el siguiente código:

$sql_insert = "INSERT INTO alumno_hist VALUES (SELECT * FROM alumnos WHERE alumn_id = '$user_id'");
if (mysql_query($sql_insert, $conexionMySql) or die(mysql_error())){
//ejecutaría una serie de instrucciones
}

Pero me salía un mensaje de error que me decía que no se podía insertar.

Luego intenté con el siguiente código:

$sql = "SELECT *";
$sql .= "FROM alumnos";
$sql .= "WHERE alumn_id = '$user_id'";
$cons_sql= mysql_query($sql);
$res= mysql_fetch_array($cons_sql);
$sql_insert = "INSERT INTO alumno";
$sql_insert .= "VALUES($res['id'], $res['nombre'], $res['apel1'], ";
$sql_insert .= "$res['apel2'], $res['dir'])";

Lo que pongo entre [] son los nombres de los campos de la tabla de la bd. (He puesto alguno de ellos para no extenderme más de lo que estoy haciendo). Si pongo este código, me aparece la página en blanco debido a que hay algún error de sintaxis y no sé cómo puedo hacer para solucionarlo.

Muchas gracias de antemano por vuestra ayuda.
  #2 (permalink)  
Antiguo 06/05/2003, 18:17
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Bueno, si te aparece una pagina en blanco, entonces el error es de SQL y no de PHP...

Lo que puedo ver a simple vista es que tratas de insertar tus datos todos por igual, cuando deberías encerrar los campos de texto o varchar en comillas... por ejemplo:

$sql_insert = "INSERT INTO alumno";
$sql_insert .= "VALUES($res['id'], \"$res['nombre']\"

Si no, MySQL no los va a poder insertar...

Saludos!
__________________
Manoloweb
  #3 (permalink)  
Antiguo 06/05/2003, 21:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si usas mysql_error() .. podrás darte cuenta de los errores de SQL que puedas tener al usar tus funciones de acceso a mysql ..

Código PHP:
$cons_sqlmysql_query($sql) or die (mysql_error());
$resmysql_fetch_array($cons_sql) or die (mysql_error()); 
(usalo con todas las funciones mysql_xxx() ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 28/08/2008, 17:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema al intentar insertar datos en una tabla de mysql

quita el values
  #5 (permalink)  
Antiguo 28/08/2008, 17:11
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema al intentar insertar datos en una tabla de mysql

proba asi:
$sql_insert = "INSERT INTO alumno_hist (SELECT * FROM alumnos WHERE alumn_id = '$user_id'");
if (mysql_query($sql_insert, $conexionMySql) or die(mysql_error())){
  #6 (permalink)  
Antiguo 28/08/2008, 17:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema al intentar insertar datos en una tabla de mysql

perdon no vi la fecha
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 19:22.