Foros del Web » Programando para Internet » PHP »

Problemas al editar y guardar los cambios de mis clientes en mi base de datos

Estas en el tema de Problemas al editar y guardar los cambios de mis clientes en mi base de datos en el foro de PHP en Foros del Web. Buenas, tengo desarrollado este código para editar clientes pero no me guarda los cambios, ¿alguien podria decirme xq? editarcliente.php Código PHP: ?> <div id="centro"> <div id="centrodentro" class="cuadrocentral"> <? ...
  #1 (permalink)  
Antiguo 26/10/2006, 08:08
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
Problemas al editar y guardar los cambios de mis clientes en mi base de datos

Buenas, tengo desarrollado este código para editar clientes pero no me guarda los cambios, ¿alguien podria decirme xq?

editarcliente.php

Código PHP:
?>
<div id="centro">
<div id="centrodentro" class="cuadrocentral">
<?
if($_SESSION['level'] == 1){


$consulta="select nombre,apellidos,direccion,ciudad,pais,email,empresa,fax,telefono,profesion from mia where id_c='$num' ";
$sql=@mysql_query($consulta,$link) or
              die(
"<CENTER>No se ha podido ejecutar la
                      consulta.<P>Compruebe si la sintaxis
                      de la misma es correcta.<P></CENTER>"
);
                      
while(
$result=mysql_fetch_array($sql)){
$nombre$result['nombre'];
$apellidos$result['apellidos'];
$direccion=$result['direccion'];
$ciudad$result['ciudad'];
$pais$result['pais'];
$email$result['email'];
$empresa$result['empresa'];
$fax$result['fax'];
$telefono$result['telefono'];
$profesion$result['profesion'];
}

    echo
"<h6>Editar clientes</h6> 
    <form action=\"editarcliente2.php\" method=\"post\">
    Nombre*:<input type=\"text\" name=\"nombre\" size=\"50\" value=\"$nombre\"></input><br>
    Apellidos*:<input type=\"text\" name=\"apellidos\" size=\"50\" value=\"$apellidos\"></input><br>
    Dirección*:<input type=\"text\" name=\"direccion\" size=\"50\" maxlength=\"50\" value=\"$direccion\"></input><br>
    Ciudad*:<input type=\"text\" name=\"ciudad\" size=\"50\" maxlength=\"50\" value=\"$ciudad\"></input><br>
    País*:<input type=\"text\" name=\"pais\" size=\"50\" maxlength=\"50\" value=\"$pais\"></input><br>
    E-mail*:<input type=\"text\" name=\"email\" size=\"50\" maxlength=\"50\" value=\"$email\"></input><br>
    Empresa*:<input type=\"text\" name=\"empresa\" size=\"50\" maxlength=\"50\" value=\"$empresa\"></input><br>
    Fax*:<input type=\"text\" name=\"fax\" size=\"50\" maxlength=\"50\" value=\"$fax\"></input><br>
    Teléfono*:<input type=\"text\" name=\"telefono\" size=\"50\" maxlength=\"50\" value=\"$telefono\"></input><br>
    Profesión*:<input type=\"text\" name=\"profesion\" size=\"50\" maxlength=\"50\" value=\"$profesion\"></input><br>
    <input type='hidden' name='varedit' value='$num'></input>
    <input type=\"submit\" name=\"agregarcliente\" value=\"Enviar\" class=\"botonformu\"></input>
    </form>"
;


}else{
echo 
'Está intentando acceder a una sección solo para administradores.';
}
echo
"</div>";
echo
"</div>";

include(
"indexdown.php");
?>
y luego este otro

editarcliente2.php

Código PHP:
<?
include("indexup.php");
include(
"menuizquierda.php");
?>
<div id="centro">
<div id="centrodentro" class="cuadrocentral">
<?
if($_SESSION['level'] == 1){


$sql="update mia set nombre=\"$nombre\",apellidos=\"$apellidos\",direccion=\"$direccion\",ciudad=\"$ciudad\",pais=\"$pais\",email=\"$email\",empresa=\"$empresa\",fax=\"$fax\,telefono=\"$telefono\,profesion=\"$profesion\" where id_c=\"$varedit\" ";
$datos=@mysql_query($sql,$link) or
              die(
"<CENTER><H3>No se ha podido ejecutar la
                      consulta.<P>Compruebe si la sintaxis
                      de la misma es correcta.<P></H3></CENTER>"
);
        
echo
"<br/>";                      
echo
"Cliente modificado correctamente";    echo"<br/>";
echo
"<a href='gestionclientes.php'>Volver a la gestión de Clientes</a>";        

}else{
echo 
'Está intentando acceder a una sección solo para administradores.';
}
echo
"</div>";
echo
"</div>";

include(
"indexdown.php");
?>
si alguien sabe q le pasa agradeceria mucho la ayuda, xq la verdad me corre mucha prisa. Gracias
  #2 (permalink)  
Antiguo 26/10/2006, 08:11
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
de hecho al cambiar los datos me pone q la consulta no se ha podido ejecutar.
  #3 (permalink)  
Antiguo 26/10/2006, 10:06
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
De acuerdo

Ya intentaste poniendo mysql_error() dentro del die()

Código PHP:
datos=mysql_query($sql,$link) or die(mysql_error()); 
Para de esta forma saber que error esta arrojando mysql.

Intenta tambien intenta imprimiendo la sentecia a pantalla y ejecutandola directamente en la bd.

Saludillos.
  #4 (permalink)  
Antiguo 26/10/2006, 10:22
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
me sale este mensaje de error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\,profesion="" where id_c=""' at line 1

pero no entiendo lo q pasa.
  #5 (permalink)  
Antiguo 26/10/2006, 10:38
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
De acuerdo

Te faltan "comillas";


Código PHP:
$sql="update mia set nombre=\"$nombre\",apellidos=\"$apellidos\",direccion=\"$direccion\",ciudad=\"$ciudad\",pais=\"$pais\",email=\"$email\",empresa=\"$empresa\",fax=\"$fax\",telefono=\"$telefono\",profesion=\"$profesion\" where id_c=\"$varedit\" "
Saludillos.
  #6 (permalink)  
Antiguo 26/10/2006, 13:59
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Yo más bien creo que el error se debe a que no le estas poniendo el método de envio a tus variables (en el archivo editarcliente2.php), las estas declarando como si fueran superglobales, tal vez deberías cambiar tu if de esta manera:

Código PHP:
if($_SESSION['level'] == 1)
{  
// esto es lo que te comente que creo falto por hacer además de que deberías de validar si llego la variable $_POST['varedit']
   // algo como if ( isset ( $_POST['varedit'] ) ) que haga todo esto 
   
$nombre $_POST['nombre'];
   
$apellidos $_POST['apellidos'];
   
$direccion $_POST['direccion'];
   
$ciudad $_POST['ciudad'];
   
$pais $_POST['pais'];
   
$email $_POST['email'];
   
$empresa $_POST['empresa'];
   
$fax $_POST['fax'];
   
$telefono $_POST['telefono'];
   
$profesion $_POST['profesion'];
   
$varedit $_POST['varedit'];

   
$sql " UPDATE mia SET nombre=\"$nombre\",apellidos=\"$apellidos\",direccion=\"$direccion\",ciudad=\"$ciudad\",pais=\"$pais\",email=\"$email\",empresa=\"$empresa\",fax=\"$fax\,telefono=\"$telefono\,profesion=\"$profesion\" where id_c=\"$varedit\" "
   
$datos mysql_query $sql$link )  or die("<CENTER><H3>No se ha podido ejecutar la consulta.<P>Compruebe si la sintaxis de la misma es correcta.<P></H3></CENTER>");
         
   echo
"<br/>";                       
   echo
"Cliente modificado correctamente";    echo"<br/>"
   echo
"<a href='gestionclientes.php'>Volver a la gestión de Clientes</a>";         

Como vez sólo era cuestión de agregar unas cuantas líneas más definiendo de que metodo fueron enviadas tus variables. Espero te haya funcionado.
Suerte
  #7 (permalink)  
Antiguo 30/10/2006, 11:38
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
he hecho las modificaciones que me indica erikfrancisco, pero no me guarda los resultados a pesar de que me pone q el cliente se ha modificado correctamente.
  #8 (permalink)  
Antiguo 30/10/2006, 12:10
pez
 
Fecha de Ingreso: enero-2002
Mensajes: 354
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola

Ya vi el problema le hacian falta algunas comillas:

Código PHP:
<?
$sql
="update mia set nombre=\"$nombre\",apellidos=\"$apellidos\",direccion=\"$direccion\",ciudad=\"$ciudad\",pais=\"$pais\",email=\"$email\",empresa=\"$empresa\",fax=\"$fax\",telefono=\"$telefono\",profesion=\"$profesion\" where id_c=\"$varedit\" ";   
?>
Te recomiendo que uses comillas simples y coloques las sentencias de mysql en Mayusculas por ejemplo:

Código PHP:
<?php

$sql
="UPDATE mia SET
nombre='$nombre',
apellidos='$apellidos',
direccion='$direccion',
ciudad='$ciudad',
pais='$pais',
email='$email',
empresa='$empresa',
fax='$fax',
telefono='$telefono',
profesion='$profesion'
WHERE id_c='$varedit'"
;
?>
Un Saludo
  #9 (permalink)  
Antiguo 30/10/2006, 12:21
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
las comillas ya las habia puesto yo, no es por eso, pero gracias de todas formas
  #10 (permalink)  
Antiguo 30/10/2006, 12:37
pez
 
Fecha de Ingreso: enero-2002
Mensajes: 354
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola en editarcliente.php

Me he fijado que has puesto
Código PHP:
while($result=mysql_fetch_array($sql)){
$nombre$result['nombre'];
$apellidos$result['apellidos'];
$direccion=$result['direccion'];
$ciudad$result['ciudad'];
$pais$result['pais'];
$email$result['email'];
$empresa$result['empresa'];
$fax$result['fax'];
$telefono$result['telefono'];
$profesion$result['profesion'];

al parecer te falta la id con la que identificas ha esa consulta.
$num= $result['id'];

Código HTML:
<input type='hidden' name='varedit' value='$num'></input> 
Un Saludo
  #11 (permalink)  
Antiguo 30/10/2006, 12:54
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
jeje me ganaste con la respuesta pez
Código PHP:
while($result=mysql_fetch_array($sql))

$num$result['id']; // el id 
$nombre$result['nombre']; 
$apellidos$result['apellidos']; 
$direccion=$result['direccion']; 
$ciudad$result['ciudad']; 
$pais$result['pais']; 
$email$result['email']; 
$empresa$result['empresa']; 
$fax$result['fax']; 
$telefono$result['telefono']; 
$profesion$result['profesion']; 

Código HTML:
 <input type='hidden' name='varedit' value='$num'></input> 
Código PHP:
$sql="update mia SET
nombre='$nombre',
apellidos='$apellidos',
direccion='$direccion',
ciudad='$ciudad',
pais='$pais',
email='$email',
empresa='$empresa',
fax='$fax',
telefono='$telefono',
profesion='$profesion' 
WHERE id_c='$varedit' "


// PARA QUE VEAS COMO SALE TU CONSULTA IMPRIMELA
echo $sql
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #12 (permalink)  
Antiguo 31/10/2006, 09:10
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
A pesar de vuestras modificaciones sigue sin guardarme los cambios hechos en la base de datos, y eso q me pone q la consulta se ejecuto correctamente.
  #13 (permalink)  
Antiguo 31/10/2006, 09:14
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
otra cosa, en el formulario, los campos deberian aparecer con los datos q ya están introducidos, no?? es q eso tampoco me sale, y a lo mejor es ahi dnd radica el error
  #14 (permalink)  
Antiguo 02/11/2006, 08:58
 
Fecha de Ingreso: abril-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 0
nadie sabe q le puede pasar???
  #15 (permalink)  
Antiguo 02/11/2006, 10:36
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Deberia de salir en los text los datos, porque no imprimes el
Cita:
$sql="update mia set nombre=\"$nombre\",apellidos=\"$apellidos\",direcc ion=\"$direccion\",ciudad=\"$ciudad\",pais=\"$pais \",email=\"$email\",empresa=\"$empresa\",fax=\"$fa x\,telefono=\"$telefono\,profesion=\"$profesion\" where id_c=\"$varedit\" ";
$datos=@mysql_query($sql,$link)
// imprimelo
echo $sql
Haber que te muestra
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #16 (permalink)  
Antiguo 02/11/2006, 10:48
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Hola! estas seguro de q te llegan las variables?
has probado de imprimirlas a ver si muestran un resultado?

Código PHP:
$nombre$result['nombre']; 
echo 
"nombre:".$nombre
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 20:00.