Foros del Web » Programando para Internet » PHP »

donde tengo el error?

Estas en el tema de donde tengo el error? en el foro de PHP en Foros del Web. buenas de nuevo tengo la siguiente función que me actualiza los datos en la bd: function update_users($olduser, $nombre, $apellidos, $email, $telefono, $direccion, $ciudad, $postal, $pais, ...
  #1 (permalink)  
Antiguo 25/06/2007, 08:36
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 0
donde tengo el error?

buenas de nuevo tengo la siguiente función que me actualiza los datos en la bd:

function update_users($olduser, $nombre, $apellidos, $email, $telefono, $direccion, $ciudad, $postal, $pais, $provincia)
{
if (!$nombre || $nombre=="")
{
return 0;
}
$conn = db_connect();
if (!$conn)
{
return "No se puede conectar al servidor de la base de datos, por favor vuelva e intente registrarse más tarde.";
}
else
{
$query = "update users
set nombre='$nombre',
apellidos ='$apellidos',
email = '$email',
telefono = '$telefono',
direccion = '$direccion',
ciudad = '$ciudad',
postal = '$postal',
pais = '$pais',
provincia = '$provincia',
where nombre='$olduser'";

$result = mysql_query($query);
}
if (!$result)
{
return 1;
}
else
{
return true;
}
}


los parametros le entran todos perfectamente por lo que siempre me devuelve un 1 porque hace el (!$result).

No me devuelve ni un error pero no me actualiza la bd, existe algun error de sintaxis en el query?. Me estoy volviendo jeje...

bueno espero respuesta por si alguien encuentra donde esta el error jeje, un saludo y mcuhas gracias de nuevo
  #2 (permalink)  
Antiguo 25/06/2007, 09:00
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: donde tengo el error?

Te sugiero que la siguiente linea

Código PHP:
$result mysql_query($query); 
la modifiques por

Código PHP:
$result mysql_query($query) or die(mysql_error()); 
de esta forma sabras si existió algún error en tu query.

Saludillos.
  #3 (permalink)  
Antiguo 25/06/2007, 09:18
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 0
Re: donde tengo el error?

Gracias tenia un error en esta linea provincia = '$provincia',
where nombre='$olduser'";

el error era esa coma que estaba mal, pero aun así me sigue devolviendo el 1.

Esto que me esta pasando es un misterio porque no existe ningun error de entrada de parametros ni de nada ya que las dos lineas de codigo estas
ini_set('display_errors', true);
require_once("funciones_fns.php");

todos los errores que me cantaban ya no dan ningun error y no se exactamente donde puede estar el error.

Si alguien me puede ayudar le estaria agradecido, muchas gracias de nuevo
  #4 (permalink)  
Antiguo 25/06/2007, 10:02
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: donde tengo el error?

return 1 y return true es lo mismo.. yo creo que uno de esos dos debe de ser 0 o false..

Código PHP:
 $result mysql_query($query);
}
if (
$result)
{
return 
1;
}
else
{
return 
0;
}

__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #5 (permalink)  
Antiguo 25/06/2007, 10:40
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 0
Re: donde tengo el error?

bien ya he conseguido que me devuelva true es decir lo tengo asi:

if (!$result)
{
return false;
}
else
{
return true;
}
pero por que me devuelve true si no me cambia los valores en la base de datos? . es decir si el resultado de la consulta es !$result¿? :S

Esto es de pelicula, no se que hacer estoy desesperado, si alguien me ayudase o me diese alguna idea le estaria muy agradecido :) muchas gracias de nuevo
  #6 (permalink)  
Antiguo 25/06/2007, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: donde tengo el error?

Prueba asi:
Código PHP:
if (!$result && mysql_affected_rows$conn ) <= 0) {
     return 
false;
} else {
     return 
true;

Debes de entender que mysql_query te regresa true si la consulta se ejecuto con éxito, pero si no habia datos que cambiar, no te afecta ninguna fila, la consulta UPDATE por defecto checa si hay datos nuevos que cambiar y si no hay no los cambia. Por eso es mejor usar mysql_affected_rows para saber cuantas filas fueron afectadas.

Saludos.
  #7 (permalink)  
Antiguo 25/06/2007, 11:30
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 0
Re: donde tengo el error?

Muchas Gracias Gator, ssx, y mauled por fin he conseguido que el usuario pueda modificar sus datos desde el panel de administración cada vez que quiera.

Es un placer estar en este foro Gracias de nuevo de verdad.
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 21:23.