Foros del Web » Programando para Internet » PHP »

Modificar datos

Estas en el tema de Modificar datos en el foro de PHP en Foros del Web. Hola capos: mi consulta es la siguiente, tengo datos almacenados en una base de datos y quiero modificarlos mediante un formulario en php, entre esos ...
  #1 (permalink)  
Antiguo 14/02/2004, 09:52
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 14 años, 3 meses
Puntos: 0
Modificar datos

Hola capos:
mi consulta es la siguiente, tengo datos almacenados en una base de datos y quiero modificarlos mediante un formulario en php, entre esos datos esta incluida una imagen (en ese campo se guarda la referencia de la imagen que en realidad se almacena en el servidor.

como seria el codigo para poder borrar la imagen que esta en el servidor y reemplazarla por la nueva y se almacene en el campo la referencia?
  #2 (permalink)  
Antiguo 14/02/2004, 11:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con unlink() borras archivos en el servidor .. y lo de reemplazar tu "imagen" nueva es simplemente un "UPDATE" a ese campo y guardar el nuevo nombre de la imagen que tiene ...

Si te animas hacer algo de código TU y lo pones aquí .. te podrémos orientar mejor sobre los detalles que te falten ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 14/02/2004, 12:05
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 14 años, 3 meses
Puntos: 0
Cluster gracias por contestarme:
este codigo que te paso mas abajo me he basado en otros que encontre revisando, no se si esta bien armado por eso recurri a ustedes para que me ayuden a armarlo y sobre todo entenderlo.

Pregunta al margen he visto que los codigos estan coloreados como se hace??

Aca te paso el codigo:

Código PHP:
<?
include ('cnn.php');
$link Conectarse();
$strSQL "select * from tb_mascotas where idMascota={$_GET["idMascota"]}";
$resultmod mysql_query($strSQL);
$rsmascotas mysql_fetch_array($resultmod);
?>

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#8DA795" link="#FF3300" vlink="#FFFF00" alink="#000099">
<h2><font face="Verdana">Panel de Control - Modificar</font></h2>
<hr>

<form name="f" action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<table cellpadding="5" cellspacing="2">
<tr bgcolor="#346767"> 
<td valign="middle"> 
<div align="right"><strong><font color="#FFFFFF" size="2" face="Verdana">Codigo:</font></strong></div></td>
<td> 
<input name="Codigo" type="text" size="10" value="<?=$rsmascotas["Codigo"]?>"><font color="#CCCCCC" size="1" face="Verdana">&nbsp;</font></td>
</tr>
<tr bgcolor="#346767"> 
      <td valign="middle"> 
        <div align="right"><strong><font color="#FFFFFF" size="2" face="Verdana">Estado:</font></strong></div></td>
<td><input name="Estado" type="text" size="10" value="<?=$rsmascotas["Estado"]?>"></td>
</tr>
<tr bgcolor="#346767"> 
<td valign="middle"> 
<div align="right"><strong><font color="#FFFFFF" size="2" face="Verdana">Caracteristicas:</font></strong></div></td>
<td><textarea name="Caracteristicas" cols="28" rows="5"><?=$rsmascotas["Caracteristicas"]?></textarea></td>
</tr>
    <tr bgcolor="#346767"> 
      <td valign="middle"> 
        <div align="right"><strong><font color="#FFFFFF" size="2" face="Verdana">Foto:</font></strong></div></td>
      <td> 
        <input type="file" name="Foto" size="20">
</td>
</tr>
    <tr bgcolor="#346767"> 
      <td valign="middle"> 
        <div align="right"><font size="2" face="Verdana"><a href="ver.php">Volver</a></font></div></td>
      <td> 
        <input type="submit" name="cmdGuardar" value="Guardar"></td>
    </tr>
  </table>
<input type="hidden" name="idMascota" value="<?=$rsmascotas["idMascota"]?>">
<input type="hidden" name="Foto" value="<?=$rsmascotas["Foto"]?>">
</form>
<?
$Codigo 
$_POST["Codigo"];
$Estado $_POST["Estado"];
$Caracteristicas $_POST["Caracteristicas"];
$Foto $_FILES["Foto"];
$rutaimgs $_SERVER['DOCUMENT_ROOT']."/Mascotas/";
$prefijo time();
$strSQL "update tb_mascotas set ";
if (
$Foto["name"]) $strSQL.="Foto='$prefijo{$Foto["name"]}',";
$strSQL .="Codigo='$Codigo',
Estado='$Estado',
Caracteristicas='$Caracteristicas'
where idMascota=$idMascota"
;

if (
$Foto["name"]){
copy ($Foto["tmp_name"], $rutaimgs.$prefijo.$Foto["name"]);
if (
$FotoViejaunlink($rutaimgs.$FotoVieja);
echo 
"<script>document.location='ver.php'</script>";
}

else{
echo 
"<p>Ha ocurrido un error.</p>\r\n";
echo 
"<p>Error MySQL: ".mysql_error()."</p>\r\n";
echo 
"<p>Comando SQL: ".$strSQL."</p>\r\n";
}

?>
</body>
</html>

Última edición por Cluster; 15/02/2004 a las 10:03
  #4 (permalink)  
Antiguo 14/02/2004, 13:31
Avatar de HiTek  
Fecha de Ingreso: noviembre-2003
Ubicación: LF, Santiago.Chile
Mensajes: 217
Antigüedad: 14 años
Puntos: 0
edita tu post, selecciona tofo el códgo escrito en PHP y luego presionas el boton PHP que está en la barra de botones sobre el textarea o simplemente agregas las etiquetas [ php ] y [ / php]
sin los espacios que les he dejado
  #5 (permalink)  
Antiguo 14/02/2004, 13:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 14 años, 3 meses
Puntos: 0
Alguna sugerencia o consejo sobre mi duda??
Porque lo que mas me interesaria es poder enenderlo mejor, ya que lo que tengo lo he probado y no funciona y no comprendo por que.
  #6 (permalink)  
Antiguo 15/02/2004, 10:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Pero el código lo has hecho tu?

No sé que quieres que te expliquemos de el ... Yo creo que con el código en la mano como lo has puesto ahora deberías de explicar lo que has entendido que hace dicho código o decir concretamente que partes del código no entiendes, por qué .. la mayoría de veces ponerse a hacer "ingenería inversa" (describir como funciona una cosa ya hecha) cuesta más que diseñarlo desde cero y sabiendo lo que va haciendo uno en cada paso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 15/02/2004, 12:14
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 14 años, 3 meses
Puntos: 0
Cluster:
reformule la pregunta en otro tema "Ayuda por favor"
mediante los ejemplos obtenidos de este foro y otras paginas, leyendolos he tratado de armarlo yo, pero creo que se me ha hecho un embrollo.
lo que quiero es mediante un formulario me muestre un registro seleccionado y poder modificarlo para que lo actualice.
Se entiende???
No se si estoy usando bien las sentencias select y update.
  #8 (permalink)  
Antiguo 17/02/2004, 16:46
 
Fecha de Ingreso: noviembre-2003
Ubicación: Barcelona
Mensajes: 31
Antigüedad: 14 años, 1 mes
Puntos: 0
Modificación

Hola,

Yo tengo que hacer el mismo form de modificar que has echo tu unos cuantos posts mas arriba. El tema es que no me salía de mi manera y lo he probado copiando la tuya y me sigue pasando el mismo error. No hay manera de recoger las variables que modifico en el formulario. No me las recoge a la pagina que envio para insertarlas de nuevo en la bd. Y cambiando y que se me ejecuten en el mismo form con el <?=$_SERVER['PHP_SELF']?> tampoco me pasan. Expongo el código a continuación(es casi idéntico que el tuyo):

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" TYPE="text/css" href="file:///C|/Projecte/Estils/formulari.css">

<? include("connexio.php");?>

<?php 

$codi 
$_GET['Codi_article'];

$sql "SELECT * FROM articles WHERE Codi_article = '$codi'"
$result mysql_query($sql$Connexio);
$row mysql_fetch_array($result);

?>

<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<table width="950" border="0" align="center">
<tr bgcolor="#FFFFCC">
                                   
<tr>
<td><strong>Nom</strong></td><td><input type="text" name="nom" value="<?=$row["Nom_article"]?>"></td>
</tr>

<tr>
<td><strong>Tipus</strong></td><td><input type="text" name="tipus" value="<?=$row["Tipus_article"]?>"></td>
</tr>

<tr>
<td><strong>Descripció</strong></td><td><input type="text" name="desc" value="<?=$row["Desc_article"]?>"></td>
</tr>

<tr>
<td><strong>Codi Barres</strong></td><td><input type="text" name="codi" value="<?=$row["Codi_barres"]?>"></td>
</tr>
<tr>
<td><strong>Cost</strong></td><td><input type="text" name="cost" value="<?=$row["Cost"]?>"></td>
</tr>
<tr>
<td><strong>Tipus IVA</strong></td><td><input type="text" name="tipusIVA" value="<?=$row["Tipus_IVA"]?>"></td>
</tr>
<tr>
<td><strong>PVP</strong></td><td><input type="text" name="pvp" value="<?=$row["PVP"]?>"></td>
</tr>
<tr>
<td><strong>PVP IVA Inclòs</strong></td><td><input type="text" name="pvpiva" value="<?=$row["PVP_IVA_inclos"]?>"></td>
</tr>                                             
</table>
<input type="hidden" name="codiA" value="<?=$row["Codi_article"]?>">
<input name="submit" type="submit" value="Guardar">
</form>

<?
$codi1 
=$_POST["Nom_article"];
echo 
"$codi1";


?>
</body>
</html>
El caso es que no me pasa las variables, ni con _POST, ni con _GET, ni con HTTP_POST_VARS, ni con HTTP_GET_VARS... ya no se como pasarlas. Y como veis en el inicio del codigo, recojo una variable de un form anterior sin problemas. Es en este segundo form donde me da problemas.

Y ya que estamos...como haría una insercion en la base de datos una vez modificados los campos, simplemente haciendo un select con los valores nuevos que recojo, no??

Muchas gracias
  #9 (permalink)  
Antiguo 17/02/2004, 21:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pavement

En tu caso particular .. el problema que tienes es que no coinciden los nombres de tus variables


Fijate:

haces esto:
<input type="text" name="nom" value="<?=$row["Nom_article"]?>"></td>
</tr>

y luego pretendes leerlo por:
$codi1 =$_POST["Nom_article"];

En ningún sitio aparecer como variable de tus input y otros objetos de formulario que puedas tener el nombre de variable "Nom_article" .. si que lo tienes definido como nombre de un campo de tu BD .. pero ahí usas "nom" .. no el otro .. así que tendrías que recoger ese dato por:

$codi1 =$_POST["nom"];

A todo esto .. no conctrolas si hay que mostrarse los datos que acabas de enviar a ese mismo script (por el formulario) o bien tienes que presentar el formulario con los datos "pre-cargados" a partir de la consulta que haces .. Para hacer esto debes usar un condicional que "pregunte" por la existencia de alguna variable de tu formulario, por ejemplo por el tipico submit ... o bien otra variable más significativa para ti y que siempre tenga que existir como tal vez ese "codiA"

Código PHP:
if (empty($_POST['codiA'])){
// presentas tu formulario ..
} else {
// Recoges tus variables por $_POST o el método que uses o le aplicas el proceso que corresponda en sí. 

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:46.