Foros del Web » Programando para Internet » PHP »

Guardar informacion e imagenes en una pagina

Estas en el tema de Guardar informacion e imagenes en una pagina en el foro de PHP en Foros del Web. Hola... buenos dias. Quiero hacer una insercion con paremetros que envio desde una pagina. Estos $_POST que envio se guardan en varias tablas, al llegar ...
  #1 (permalink)  
Antiguo 08/05/2012, 09:24
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 15 años, 1 mes
Puntos: 5
Pregunta Guardar informacion e imagenes en una pagina

Hola... buenos dias.

Quiero hacer una insercion con paremetros que envio desde una pagina.
Estos $_POST que envio se guardan en varias tablas, al llegar a mi archivo
save.php, pero en esa mismo archivo esta la opcion de subir imagenes,
y en el cual uso la consulta que hago en una de las inserciones para poder
capturar un id y asi guardar las imagenes que se subiran con ese id (para relacionar)

el problema es que al cargar la imagen, vuelve a guardar los valores en las tablas.
es decir, ingresa nuevamente la informacion en las tablas por cada vez que se
sube una imagen... y pues no es la idea sino que solo haga la insercion de los
datos una vez y luego solo la insercion de las imagenes.. pero sin perder el
valor del id que necesito...

Tengo el siguiente codigo en save.php:

Código PHP:
<?php
include ('conexion.php');
conectar();

$id_clasi $_POST['clasificacion'];
$id_catclasi $_POST['categoria'];
$rif strtoupper($_POST['rif']);
$razon $_POST['razon'];
$direccion $_POST['direccion'];
$correo $_POST['email'];
$nombre_acti $_POST['actividad'];
$descripcionAT $_POST['descripcion'];
//Aqui se prepara fecha ingresada para guardarla en BD
$f1 date_create($_POST['fechai']);
$f2 date_create($_POST['fechac']);
$fechaidate_format($f1'Y/m/d');
$fechac date_format($f2'Y/m/d');


// Esto es lo que quiero que se ejecute solo una vez...    
$sql_1 mysql_query("INSERT INTO tbl_empresa (razon_social, direccion, rif, correo) VALUES ('$razon', '$direccion', '$rif', '$correo');");
$sql_1 mysql_query("SELECT id_emp FROM tbl_empresa WHERE rif='$rif';");
if (
$row mysql_fetch_row($sql_1)) { $valor1 trim($row[0]); }

if((
$nombre_acti!="")&&($descripcionAT!="")&&($fechai!="")&&($fechac!=""))
{
    
$sql_2 mysql_query("INSERT INTO tbl_acti_proye (nombre, descripcion, fechai, fechac)
    VALUES ('$nombre_acti', '$descripcionAT', '$fechai', '$fechac');"
);
    
$sql_2 mysql_query("SELECT max(id_ap) FROM tbl_acti_proye;");
    if (
$row mysql_fetch_row($sql_2)) { $valor2 trim($row[0]); }
}
if(isset(
$valor1))
{
    
$sql_3 mysql_query("INSERT INTO tbl_relacion (d_cli, id_emp, id_ap, id_clasi, id_catclasi)
    VALUES ('32', '$valor1', '$valor2', '$id_clasi', '$id_catclasi');"
);
}
?>
<?php
        
// Esto es lo que se ejecutara mas de una vez...
    
if(isset($_POST['upload']))
    {
        
$fileName $_FILES['userfile']['name'];
        
$tmpName  $_FILES['userfile']['tmp_name'];
        
$fileSize $_FILES['userfile']['size'];
        
$fileType $_FILES['userfile']['type'];
        
        
$fp fopen($tmpName'r');
        
$content fread($fp$fileSize);
        
$content addslashes($content);
        
fclose($fp);
        
        if(!
get_magic_quotes_gpc())
        {
            
$fileName addslashes($fileName);
        }
        
        if(
$fileSize<=524288)
        {
            
$query "INSERT INTO tbl_foto_acti_proye (name, size, type, content, id_ap) ".
            
"VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$valor2')"// $valor2 es el id_ap que necesito guardar
            
            
mysql_query($query) or die('Error, query failed');                    
            
            
$imagen ' Imagen Ingresada Correctamente!';
        }
        else
        {
            
$imagen ' La imagen debe ser menor a 512 KB... ';
        }
    }
desconectar();
?>
          <tr>
            <td colspan="3" align="center" valign="middle"><label for="textfield"></label>
              <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
              <input name="userfile" type="file" id="userfile">
              <input type="submit" name="upload" id="upload" value="Aceptar" class="fb3"/>
              </td>
          </tr>
Agradezco su ayuda de antemanos...
  #2 (permalink)  
Antiguo 08/05/2012, 10:16
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Guardar informacion e imagenes en una pagina

Hola,

Podrías colocar campos hidden en los formularios dependiendo del caso por ejemplo con values (INSERTAR, SUBI-IMAGEN) y validas en tu archivo save que estas haciendo y validas los insert si solo es INSERTAR, sino solo ejecutas la sección de la subida de imagenes.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 08/05/2012, 10:48
Avatar de Beuses  
Fecha de Ingreso: marzo-2009
Ubicación: Maracaibo
Mensajes: 132
Antigüedad: 15 años, 1 mes
Puntos: 5
Exclamación Respuesta: Guardar informacion e imagenes en una pagina

Hola the_web_saint :)

Gracias por tu idea..
Coloque lo mismo pero encerre lo que quiero q se ejecute solo una vez dentro de un else para que al enviar una imagen ya no corra la insercion de la informacion sino solo el de las imagenes... y que al darle al boton aceptar (para subir la imagen) consulte y busque el id seguin los parametros que envio...

Quedando asi mi archivo save.php
Código PHP:
<?php
include ('conexion.php');
conectar();

     
// Esto es lo que se ejecutara mas de una vez...
    
if(isset($_POST['upload']))
    {
    
$sql mysql_query("SELECT max(id_ap) FROM tbl_acti_proye where lower(nombre) = lower('$nombre_acti')
    and lower(descripcion) = lower('$descripcionAT') and fechai = '$fechai' and fechac = '$fechac';"
);
    if (
$row mysql_fetch_row($sql)) { echo $valor trim($row[0]); }

        
$fileName $_FILES['userfile']['name'];
        
$tmpName  $_FILES['userfile']['tmp_name'];
        
$fileSize $_FILES['userfile']['size'];
        
$fileType $_FILES['userfile']['type'];
        
        
$fp fopen($tmpName'r');
        
$content fread($fp$fileSize);
        
$content addslashes($content);
        
fclose($fp);
        
        if(!
get_magic_quotes_gpc())
        {
            
$fileName addslashes($fileName);
        }
        
        if(
$fileSize<=524288)
        {
            
$query "INSERT INTO tbl_foto_acti_proye (name, size, type, content, id_ap) ".
            
"VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$valor2')"// $valor2 es el id_ap que necesito guardar
            
            
mysql_query($query) or die('Error, query failed');                    
            
            
$imagen ' Imagen Ingresada Correctamente!';
        }
        else
        {
            
$imagen ' La imagen debe ser menor a 512 KB... ';
        }
    }
else
{
$id_clasi $_POST['clasificacion'];
$id_catclasi $_POST['categoria'];
$rif strtoupper($_POST['rif']);
$razon $_POST['razon'];
$direccion $_POST['direccion'];
$correo $_POST['email'];
$nombre_acti $_POST['actividad'];
$descripcionAT $_POST['descripcion'];
//Aqui se prepara fecha ingresada para guardarla en BD
$f1 date_create($_POST['fechai']);
$f2 date_create($_POST['fechac']);
$fechaidate_format($f1'Y/m/d');
$fechac date_format($f2'Y/m/d');


// Esto es lo que quiero que se ejecute solo una vez...    
$sql_1 mysql_query("INSERT INTO tbl_empresa (razon_social, direccion, rif, correo) VALUES ('$razon', '$direccion', '$rif', '$correo');");
$sql_1 mysql_query("SELECT id_emp FROM tbl_empresa WHERE rif='$rif';");
if (
$row mysql_fetch_row($sql_1)) { $valor1 trim($row[0]); }

if((
$nombre_acti!="")&&($descripcionAT!="")&&($fechai!="")&&($fechac!=""))
{
    
$sql_2 mysql_query("INSERT INTO tbl_acti_proye (nombre, descripcion, fechai, fechac)
    VALUES ('$nombre_acti', '$descripcionAT', '$fechai', '$fechac');"
);
    
$sql_2 mysql_query("SELECT max(id_ap) FROM tbl_acti_proye;");
    if (
$row mysql_fetch_row($sql_2)) { $valor2 trim($row[0]); }
}
if(isset(
$valor1))
{
    
$sql_3 mysql_query("INSERT INTO tbl_relacion (d_cli, id_emp, id_ap, id_clasi, id_catclasi)
    VALUES ('32', '$valor1', '$valor2', '$id_clasi', '$id_catclasi');"
);
}
}
desconectar();
?>
Me funciona por ahora... Espero este bien hecho

Etiquetas: archivo.php, imagenes, insert, mysql
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 15:03.