Foros del Web » Programando para Internet » PHP »

problemas al actualizar un campo de un registro ayuda porfa

Estas en el tema de problemas al actualizar un campo de un registro ayuda porfa en el foro de PHP en Foros del Web. Hola , muchas gracias la verdad es que me urge , veran tengo una pagina con un formulario para actualizar varios campos , ya anteriormente ...
  #1 (permalink)  
Antiguo 01/12/2004, 11:51
 
Fecha de Ingreso: noviembre-2004
Mensajes: 13
Antigüedad: 13 años
Puntos: 2
Pregunta problemas al actualizar un campo de un registro ayuda porfa

Hola , muchas gracias la verdad es que me urge , veran tengo una pagina con un formulario para actualizar varios campos , ya anteriormente fueron insertados sus valores en mysql ,en esta pagina seleccioo un nombre para modificar sus campos , el problema es que actualizo un solo campo , y los demas como no recibieron ningun valor nuevo , los toma en blanco y los almacena asi en blanco , no respeta lo que tenia anteriormente guardado, no se como hacerle ya sea que para que al seleccionar el nombre me llene los campos del formulario con sus contenidos , o que solo actualize los campos que quiera y no todos , gracia por la ayuda este es codigo de la pagina del formulario

<HTML>
<HEAD>
<TITLE>actualizar1.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>
<?
//Conexion con la base
mysql_connect("localhost","","");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">Nombre<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select nombre From clientes Order By nombre";
$result=mysql_db_query("ejemplo",$sSQL);

echo '<select name="nombre">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
?>
</select>
<br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
Domicilio<br>
<INPUT TYPE="TEXT" NAME="domicilio"><br>
Domicilio para notificaciones<br>
<INPUT TYPE="TEXT" NAME="domicilion"><br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>

</BODY>
</HTML>
para actualizar los campos el problema es que al actualizar un campo y los demas no , se quedan en blanco los actualiza asi , y elimina su contenido ,

<HTML>
<HEAD>
<TITLE>actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","root","");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update Clientes Set telefono='$telefono', domicilio='$domicilio' ,domicilion='$domicilion' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
?>

<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>
Ojala me puedan ayudar , no se donde se encuentre el error
  #2 (permalink)  
Antiguo 01/12/2004, 11:57
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Tienes que recojer los valores enviados por formulario:
Código PHP:
$nombre=$_POST['nombre'];
$telefono=$_POST['telefono'];
$domicilio=$_POST['domicilio'];
$domicilion=$_POST['domicilion']; 
Prueba de incorporar esto.
  #3 (permalink)  
Antiguo 01/12/2004, 13:10
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
Mira tu confoguracion del php.ini, y verifica la directiva de REGISTER_GLOBALS, si esta en ON o OFF, si esta ON, el ejemplo debe funcionarte perfectamente, si esta OFF, debes utilizar las variables superglobales $_POST, ok, en tu caso
Código PHP:
$telefono=$_POST['telefono']; 
y no tendras ningun problema...chao y Suerte
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #4 (permalink)  
Antiguo 01/12/2004, 13:24
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
El problema no es que no haya usado $_POST[] o $_GET[], el problema de el es que no esta usando IF de ningun tipo.

Has varios IF, y segun las variables con contenido es la secuencia SQL que debes hacer (Es decir, las vars sin contenido no las actualizas).

Algo asi:

Código:
if ($_POST[nombre] != "") {

if ($_POST[telefono] != "" && $_POST[domicilio] != "" && $_POST[domicilion] != "") { 
$sSQL="Update Clientes Set telefono='$telefono', domicilio='$domicilio' ,domicilion='$domicilion' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
}
if ($_POST[telefono] != "" && $_POST[domicilio] != "" && $_POST[domicilion] == "") { 
$sSQL="Update Clientes Set telefono='$telefono', domicilio='$domicilio' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
}
if ($_POST[telefono] != "" && $_POST[domicilio] == "" && $_POST[domicilion] != "") { 
$sSQL="Update Clientes Set telefono='$telefono' ,domicilion='$domicilion' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
}
if ($_POST[telefono] == "" && $_POST[domicilio] != "" && $_POST[domicilion] != "") { 
$sSQL="Update Clientes Set domicilio='$domicilio' ,domicilion='$domicilion' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
}
if ($_POST[telefono] == "" && $_POST[domicilio] != "" && $_POST[domicilion] == "") { 
$sSQL="Update Clientes Set domicilio='$domicilio' Where nombre='$nombre'";
mysql_db_query("ejemplo",$sSQL);
}

}
Bueno, has uun IF para cada posibilidad =P
__________________
I Love Programming...
  #5 (permalink)  
Antiguo 01/12/2004, 14:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Siempre pueden usar las funciones isset() o empty() para ver si una variable tiene valor y está definida o sólo si está definida ..

Por lo demás .. FUlano .. intenta poner el valor del indice de un array entre comillas .. sino podrá ser considerado como constante con los problemas que te puede traer ello:

Código PHP:
if (emtpy($_POST['variable'])){
// la variable no tiene valor ni cero ni '' o no está definida.

Un saludo,
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 01:29.