Insertar en una tabla (ayuda Yamil)
Publicado por Isabel (2 intervenciones) el 01/02/2007 12:04:42
Hola a todos,
no se mucho y me estoy volviendo loca, intento insertar en una tabla unas imagenes, lo extraño es que no se insertan en la tabla pero si se suben a la carpeta de mi servidor.
¿Puede que no tenga la tabla bien montada? la definición de la tabla es:
Field Type Null Default
codim bigint(20) No auto_increment (clave primaria)
foto_mini varchar(255) No
foto_grande varchar(255) Yes NULL
orden int(11) No 0
codweb bigint(20) Yes NULL
codfoll bigint(20) Yes NULL
codcat bigint(20) Yes NULL
codvis bigint(20) Yes NULL
codnot bigint(20) Yes NULL
codsta bigint(20) Yes NULL
codpac bigint(20) Yes NULL
codtrab bigint(20) Yes NULL
tengo unas tablas a las cuales quiero relacionar más de una imagen por registro, por eso tengo tantas claves ajenas, son una por cada tabla a la que quiero relacionar las imagenes.
y el insert lo hago así:
1- desde otro formulario me pasan los datos
<form name="formNuevoFichero" action="<?=$edit?"edit_imagen.php":"insert_imagen.php?codnot=$codnot";?>"method="post" ENCTYPE="multipart/form-data">
2- los inserto
$codnot = $_REQUEST['codnot'];
$orden = $_REQUEST['orden'];
// subimos la miniatura
if ($fichero) {
list($error,$foto_miniatura, $error_txt) = upload_file($fichero,$dir,"fichero");
if ((!$error) && ($fichero2)) {
// subimos la foto grande
list($error,$foto_grande, $error_txt) = upload_file($fichero2,$dir,"fichero2");
}
if (!$error) { // hemos conseguido subir las dos fotos con éxito
$row["foto_mini"] = $foto_miniatura;
if ($foto_grande) {
$row["foto_grande"] = $foto_grande; // la foto grande es opcional
}
$row["orden"] = $orden;
$row["codweb"] = "NULL"; // ¿es entre simples? o entre dobles?
$row["codfoll"] = "NULL";
$row["codcat"] = "NULL";
$row["codvis"] = "NULL";
$row["codnot"] = $codnot;
$row["codsta"] = "NULL";
$row["codpac"] = "NULL";
$row["codtrab"] = "NULL";
//¿ TENGO QUE PONER TODOS LOS CAMPOS AUNQUE SEAN NULL, NO?
if (insert_table($row,"imagenes")) {
display_cuadro_aviso("Fotos subidas con éxito","noticias.php","Aceptar");
}
else {
$texto = "Error: Problema de conexión.<br> Pruebe de nuevo en otro momento";
display_cuadro_aviso($texto,"noticias.php","Aceptar");
// deberíamos borrar las fotos subidas... :s
}
}
else {
display_cuadro_aviso($error_txt,"noticias.php","Aceptar");
}
}
else {
$texto = "Error: Debe seleccionar al menos la imagen en minuatura";
display_cuadro_aviso($texto,"noticias.php","Aceptar");
}
y el insert general
function insert_table($row,$table){
// devuelve el identificador de la fila recien insertada
$conn = db_connect();
$query_part1 = "insert into $table (id";
$query_part2 = " values (''"; // suponemos el primero autonumérico
foreach ($row as $key => $value) {
// si es un número o intentamos meter la fecha de hoy, no valen las comillas simples
$query_part1 .= ",$key";
if ((is_numeric($value)) || ($value == "now()")) {
$query_part2 .= ",$value";
}
else {
$query_part2 .= ",'$value'";
}
}
$query_part1 .= ")";
$query_part2 .= ");";
$query = $query_part1.$query_part2;
//echo $query."<br>";
$result = mysql_query($query);
if (!$result)
return false;
else
return mysql_insert_id();
}
si alguien me puede decir que c... pasa, estaré muy agradecida,
saludos y suerte! ;)
no se mucho y me estoy volviendo loca, intento insertar en una tabla unas imagenes, lo extraño es que no se insertan en la tabla pero si se suben a la carpeta de mi servidor.
¿Puede que no tenga la tabla bien montada? la definición de la tabla es:
Field Type Null Default
codim bigint(20) No auto_increment (clave primaria)
foto_mini varchar(255) No
foto_grande varchar(255) Yes NULL
orden int(11) No 0
codweb bigint(20) Yes NULL
codfoll bigint(20) Yes NULL
codcat bigint(20) Yes NULL
codvis bigint(20) Yes NULL
codnot bigint(20) Yes NULL
codsta bigint(20) Yes NULL
codpac bigint(20) Yes NULL
codtrab bigint(20) Yes NULL
tengo unas tablas a las cuales quiero relacionar más de una imagen por registro, por eso tengo tantas claves ajenas, son una por cada tabla a la que quiero relacionar las imagenes.
y el insert lo hago así:
1- desde otro formulario me pasan los datos
<form name="formNuevoFichero" action="<?=$edit?"edit_imagen.php":"insert_imagen.php?codnot=$codnot";?>"method="post" ENCTYPE="multipart/form-data">
2- los inserto
$codnot = $_REQUEST['codnot'];
$orden = $_REQUEST['orden'];
// subimos la miniatura
if ($fichero) {
list($error,$foto_miniatura, $error_txt) = upload_file($fichero,$dir,"fichero");
if ((!$error) && ($fichero2)) {
// subimos la foto grande
list($error,$foto_grande, $error_txt) = upload_file($fichero2,$dir,"fichero2");
}
if (!$error) { // hemos conseguido subir las dos fotos con éxito
$row["foto_mini"] = $foto_miniatura;
if ($foto_grande) {
$row["foto_grande"] = $foto_grande; // la foto grande es opcional
}
$row["orden"] = $orden;
$row["codweb"] = "NULL"; // ¿es entre simples? o entre dobles?
$row["codfoll"] = "NULL";
$row["codcat"] = "NULL";
$row["codvis"] = "NULL";
$row["codnot"] = $codnot;
$row["codsta"] = "NULL";
$row["codpac"] = "NULL";
$row["codtrab"] = "NULL";
//¿ TENGO QUE PONER TODOS LOS CAMPOS AUNQUE SEAN NULL, NO?
if (insert_table($row,"imagenes")) {
display_cuadro_aviso("Fotos subidas con éxito","noticias.php","Aceptar");
}
else {
$texto = "Error: Problema de conexión.<br> Pruebe de nuevo en otro momento";
display_cuadro_aviso($texto,"noticias.php","Aceptar");
// deberíamos borrar las fotos subidas... :s
}
}
else {
display_cuadro_aviso($error_txt,"noticias.php","Aceptar");
}
}
else {
$texto = "Error: Debe seleccionar al menos la imagen en minuatura";
display_cuadro_aviso($texto,"noticias.php","Aceptar");
}
y el insert general
function insert_table($row,$table){
// devuelve el identificador de la fila recien insertada
$conn = db_connect();
$query_part1 = "insert into $table (id";
$query_part2 = " values (''"; // suponemos el primero autonumérico
foreach ($row as $key => $value) {
// si es un número o intentamos meter la fecha de hoy, no valen las comillas simples
$query_part1 .= ",$key";
if ((is_numeric($value)) || ($value == "now()")) {
$query_part2 .= ",$value";
}
else {
$query_part2 .= ",'$value'";
}
}
$query_part1 .= ")";
$query_part2 .= ");";
$query = $query_part1.$query_part2;
//echo $query."<br>";
$result = mysql_query($query);
if (!$result)
return false;
else
return mysql_insert_id();
}
si alguien me puede decir que c... pasa, estaré muy agradecida,
saludos y suerte! ;)
Valora esta pregunta


0