Foros del Web » Programando para Internet » PHP »

actualizar datos de la bd

Estas en el tema de actualizar datos de la bd en el foro de PHP en Foros del Web. hola amigos, de nuevo por aca con un pequeño problema. ahy les cuento cual es: bueno tengo un formulario ( contacto.php ) con el cual ...
  #1 (permalink)  
Antiguo 03/04/2010, 10:54
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
actualizar datos de la bd

hola amigos, de nuevo por aca con un pequeño problema. ahy les cuento cual es:

bueno tengo un formulario (contacto.php) con el cual ingreso mis datos a la db.
en el archivo procesa.php el cual registra la data ahy coloco el siguiente codigo. pero antes de todo esto hay un campo (activo) que lo guardo con un valor por default = "0".

Código PHP:
$to  $email;
$subject "Pruebas";
$message ="<font size=2 color=1c1c1c face=arial>Estimado (a)<b> ".$nombres."</b><br>Tu informacion ha ingresado a nuestra base de datos. <br>Porfavor para activar su cuenta ingrese aqui: <a href=http://www.dominio.com.pe/activacion.php?dni=".$dni."&email=".$email."&activo=1&token=".$token.">activar cuenta</a>.";
$headers  "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Pruebas <[email protected]>\r\n";
mail($to$subject$message$headers); 
el cual envio un link con unos datos al correo del usuario como dni, email, activo (el cual va con un valor igual a 1). lo que quiero es que cuando den link en esa direccion que le envio al usuario se realize una update en mi bd.
primero que realize una consulta que ubique el dni y el email del usuario registrado una vez ubicados los datos que el campo activo (activo=0) se actualize y pase de 0 a 1 (activo=1).

bueno de ante mano muchas gracias a las personas interesadas en ayudarme.
  #2 (permalink)  
Antiguo 03/04/2010, 11:45
Avatar de mauroave  
Fecha de Ingreso: julio-2009
Mensajes: 50
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: actualizar datos de la bd

Mmmm, a ver dejame ver si entendi...cuando el usuario haga click en ese enlace que tu le mandas por mail, deseas que en la tabla de la base de datos, el campo "activo" pase de "0" a "1"?

Supongo que lo que tendrias que hacer en el archivo activacion.php es recibir todas las variables que mandas por $_GET, incluyendo la variable "activo". Luego haces la consulta a la bd, y si el nombre y el documento del usuario existen, entonces actualizas el campo "activo" a valor=1.
  #3 (permalink)  
Antiguo 03/04/2010, 16:25
Avatar de franklin85  
Fecha de Ingreso: octubre-2006
Mensajes: 103
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: actualizar datos de la bd

hola mauroave gracias por tu respuesta. Hice una pruebas pero nada.
bueno ahy te dejo el codigo que estoy usando para que veas cual es la falla.
Nuevamente muchas gracias.

Código PHP:
<?php
$dni
=$_GET['dni'];
$email=$_GET['email'];
$activo=$_GET['activo'];

include(
"conexion.php");
$sql="SELECT * FROM contactenos2 where email='".$email."' and dni='".$dni."'";
$iqryvar=mysql_query($sql) or die(mysql_error());
while (
$frvirt=mysql_fetch_array($iqryvar)){
    
$sql2="UPDATE contactenos2 SET dni='$dni', email='$email' WHERE activo=$activo";
    
mysql_query($sql2);
    echo (
"<script>window.location='index.php'</script>");
}
?>
  #4 (permalink)  
Antiguo 03/04/2010, 18:32
Avatar de mauroave  
Fecha de Ingreso: julio-2009
Mensajes: 50
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: actualizar datos de la bd

a ver...
Primero hace un echo de las variables que recibis por GET, asi te es mas facil ir descartando errores. Suponiendo que las recibas bien, quiero saber que haces exactamente en esas consultas..

Código PHP:
$sql="SELECT * FROM contactenos2 where email='".$email."' and dni='".$dni."'";
$iqryvar=mysql_query($sql) or die(mysql_error());
while (
$frvirt=mysql_fetch_array($iqryvar)){
    
$sql2="UPDATE contactenos2 SET dni='$dni', email='$email' WHERE activo=$activo";
    
mysql_query($sql2);
    echo (
"<script>window.location='index.php'</script>");
}
?> 
Para que es el while? porque si quieres actualizar el registro de un usuario, entoncces necesitas acceder a una sola tupla de la base de datos, en este caso, la tupla que cumpla con la condicion de que sea igual a la variable $email y $dni. Una vez encontrada esta tupla, actualizar el campo activo.
Algo asi es lo que entiendo yo, sino explicame tu problema de nuevo

Código PHP:
$sql="SELECT * FROM contactenos2 WHERE email='$email' and dni='$dni'";
$iqryvar=mysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($iqryvar)>0)
{
    
$sql2="UPDATE contactenos2 SET activo='$activo' WHERE  dni='$dni' AND email='$email' ";
    
mysql_query($sql2);
    echo (
"<script>window.location='index.php'</script>");
}
?> 

Etiquetas: bd
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:44.