Comunidad de diseño web y desarrollo en internet online

Problema con modificacion de registros desde PHP

Citar            
MensajeEscrito el 11 Sep 2006 09:27 am
Buenas a tod@s, aquí os dejo un código muy util, que tiene como fin, editar un producto ya existente en la base de datos o crear uno nuevo basandose en el existente, según el botón presionado realiza una de las opciones. El único inconveniente es que no logro que al pulsar el boton editar me sustituya la fotografía vieja por la nueva o al pulsar el boton duplicar me guarde la nueva fotografia :( algo hago mal y no lo veo... Si alguien me puede ayudar se lo agradecería!!

Código :

         <?
         include("../includes/config.php");
         include("../includes/funciones.php");
         
         
         if(isset($_POST['submit2'])){
            $error = false;
            // si hay imagen.
            if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
               //revisamos que sea jpg
                  if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){
                  //nombre de la imagen
                  $foto = "$producto";
                  //movemos la imagen.
                  move_uploaded_file($_FILES['imagen']['tmp_name'], "../fotografias/".$foto);
               }else{
                  $error = true;
                  $mensaje = "Formato no válido para archivo de imagen";
                  include("mensajes.php");
               }
            } else {
               //imagen no se pudo subir o no seleccionaron.
               $error=true;
               $mensaje = "Error al cargar imagen: " . $_FILES['imagen']['name'];
               include("mensajes.php");
            }//fin file upload.
               
         
            $productos = str_replace("\r","",$_POST['descripcion']);
         
         
            $campos = "referencia,producto,medida,peso,descripcion,antiguedad,precio,seur,foto";
            $valores = "'".$_POST['referencia']."','".$_POST['producto']."','".$_POST['medida']."','".$_POST['peso']."','".$_POST['descripcion']."','".$_POST['antiguedad']."','".$_POST['precio']."','".$_POST['seur']."','$foto'";
            //nos conectamos a la bd.
            $cnx = conectar();
            function quitar($mensaje) 
         { 
         $mensaje = str_replace("<","&lt;",$mensaje); 
         $mensaje = str_replace(">","&gt;",$mensaje); 
         $mensaje = str_replace("\'","'",$mensaje); 
         $mensaje = str_replace('\"',"&quot;",$mensaje); 
         $mensaje = str_replace("\\\\","\",$mensaje); 
         return $mensaje; 
         } 
         
         if(trim($HTTP_POST_VARS["referencia"]) != ""  && trim($HTTP_POST_VARS["producto"]) != ""  && trim($HTTP_POST_VARS["medida"]) != "" && trim($HTTP_POST_VARS["peso"]) != ""  && trim($HTTP_POST_VARS["descripcion"]) != "" && trim($HTTP_POST_VARS["antiguedad"]) != "" && trim($HTTP_POST_VARS["precio"]) != "" && trim($HTTP_POST_VARS["seur"]) != "") 
         { 
         $result=mysql_query("SELECT * from forja where producto='$producto'");
         if (mysql_num_rows($result)>0)
         { 
               $mensaje = "Error, este nombre ya lo utiliza otro producto, vuelva intentarlo."; 
         } 
         else 
         { 
         if($error)
         {
               $mensaje = "Compruebe el tamaño de la fotografía y vuelva a intentarlo.";
         }
         else 
         { 
            $res = mysql_query("INSERT INTO forja ($campos) VALUES($valores)") or die (mysql_error());
            mysql_query($sql); 
         $titulo = "Producto registrado correctamente, ya puede cerrar esta ventana."; 
         
         } }
         mysql_free_result($result); 
         } 
         else 
         { 
         $mensaje = "Ha dejado casillas en blanco, vuelva a intentarlo.";
          
         } 
         
            //actualizamos el xml de catalogo.
            actualizarXmlcatalogo();
            //cerramos la conexión.
            mysql_close($cnx);
            //mensaje de exito.
            include("mensajes.php");
            exit;
         }else{
         
         if(isset($_POST['submit'])){
            //actualizamos el registro.
            
            $sql = "UPDATE forja SET ";
            $sql .= "referencia ='".$_POST['referencia']."',producto ='".$_POST['producto']."',medida ='".$_POST['medida']."',peso='".$_POST['peso']."',descripcion='".$_POST['descripcion']."',antiguedad ='".$_POST['antiguedad']."',precio ='".$_POST['precio']."',seur ='".$_POST['seur']."',foto='".$_POST['foto']."' ";
            $sql .= "WHERE id= ".$_POST['id'];
            //nos conectamos a la bd.
            $cnx = conectar();
            $res = mysql_query($sql) or die (mysql_error());
            //actualizamos el xml de agenda.
            actualizarXmlcatalogo();
            //cerramos la conexión.
            mysql_close($cnx);      
            //mensaje de exito.
            $titulo = "Producto Actualizado";
            $mensaje = "El producto ha sido Actualizado";
            include("mensajes.php");
            exit;
         }
         
         if(empty($_GET['id'])){
            header("Location: index.php");
         }}
         $cnx = conectar();
         $res = mysql_query ("SELECT * FROM forja WHERE id =".$_GET['id']) or die (mysql_error());
         
         ?>
         
         <html>
         <head>
         <title>Duplicar producto</title>
         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
         </head>
         
         <?
            if(mysql_num_rows($res)> 0) {
               //si hay datos
               list($id,$referencia,$producto,$medida,$peso,$descripcion,$antiguedad,$precio,$seur,$foto) = mysql_fetch_array($res);
               
                  if(!is_dir("../fotografias")) mkdir("../fotografias", 0755); 
         move_uploaded_file($_FILES['imagen'], "../fotografias/".$_GET['foto']);
         
         ?>
         
         <body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
         <form action="<? echo $SERVER['PHP_SELF']?>" method="post" name="form1">
           
  <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr> 
      <td height="30" bgcolor="#666600" class="cabeceraBold"> <div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="hidden" name="id" value="<? echo $id;?>">
          <input type="hidden" name="producto" value="<? echo $producto;?>">
          - Editar producto -</font></div></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Referencia:</span> 
          <input name="referencia" type="text" id="referencia" size="40" value="<? echo $referencia;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Producto:</span> 
          <input name="producto" type="text" id="producto" size="40" value="<? echo $producto;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Medida:</span> 
          <input name="medida" type="text" id="medida" size="40" value="<? echo $medida;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Peso:</span> 
          <input name="peso" type="text" id="peso" size="40" value="<? echo $peso;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Descripcion:</span><br>
        <textarea name="descripcion" cols="40" rows="6" id="descripcion"><? echo $descripcion;?></textarea>
        </font></td>
    </tr>
    <tr> 
      <td valign="middle">&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Antiguedad:</span> 
          <input name="antiguedad" type="text" id="antiguedad" size="40" value="<? echo $antiguedad;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td height="41" valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Precio:</span> 
          <input name="precio" type="text" id="precio" size="40" value="<? echo $precio;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td height="41" valign="middle"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Seur:</span> 
          <input name="seur" type="text" id="seur" size="40" value="<? echo $seur;?>">
          </font></p>
        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <br>
          </font></p></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span class="textoBold">Foto</span>:<br>
        </font><font face="Verdana, Arial, Helvetica, sans-serif"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><img src="../fotografias/<? echo $foto;?>" alt="<? echo $foto?>"></font></div></td>
    </tr>
    <tr> 
      <td><div align="center"> 
          <p>&nbsp; 
            <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
            <input name="imagen" type="file" id="imagen">
          </p>
        </div></td>
    </tr>
    <tr> 
      <td align="right">&nbsp;</td>
    </tr>
    <tr> 
      <td align="right" bgcolor="#666600"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input name="submit" type="submit" id="submit" value="Editar">
          <input name="submit2" type="submit" id="submit2" value="Duplicar">
          </font></div></td>
    </tr>
    <tr> 
      <td height="30" class="pie"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="index.php">regresar</a></font></td>
    </tr>
  </table>
         </form>
         <?
         }else{
            //no hay datos
            echo "No hay registros que coincidan con el identificador";
         }
         mysql_close($cnx)
         ?>
         </body>
         </html>


Muchísimas gracias por su atención!

Por bluenet

100 de clabLevel



Genero:Masculino  

Sevilla

msie
Citar            
MensajeEscrito el 11 Sep 2006 10:02 am
No se.... te da algún mensaje de error o algo? podría ayudar a encontrar el problema.... ¬¬ ¬¬

Mirando por encima tu código esto:

Código :

         else 
         { 
            $res = mysql_query("INSERT INTO forja ($campos) VALUES($valores)") or die (mysql_error());
            mysql_query($sql); 
ese mysql_query($sql); no se de donde lo sacas, no vi por ningún lado la variable $sql, creo ¬¬ ¬¬ ya t digo no lo he podido mirar a fondo pero.....

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.