Foros del Web » Programando para Internet » PHP »

Error al "actualizar" datos desde php mysql

Estas en el tema de Error al "actualizar" datos desde php mysql en el foro de PHP en Foros del Web. Hola! amigos del foro este es mi 2º tema en el dia tengo dos erroresen un archivo que actualiza datos de php a mysql adjunto ...
  #1 (permalink)  
Antiguo 16/11/2011, 13:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 11 meses
Puntos: 1
Error al "actualizar" datos desde php mysql

Hola! amigos del foro este es mi 2º tema en el dia tengo dos erroresen un archivo que actualiza datos de php a mysql adjunto el codigo y los errores:

actualizar.php
Código PHP:
Ver original
  1. <?php
  2. require('functions.php');
  3. if(isset($_POST['submit'])){
  4.     require('clases/cliente.class.php');
  5.     $objCliente=new Cliente;
  6.    
  7.     $id_usuario = htmlspecialchars(trim($_POST['id_usuario']));
  8.     $usuario = htmlspecialchars(trim($_POST['usuario']));
  9.     $password = htmlspecialchars(trim($_POST['password']));
  10.     $email = htmlspecialchars(trim($_POST['email']));
  11.     $nombre = htmlspecialchars(trim($_POST['nombre']));
  12.     $fecAlta = htmlspecialchars(trim($_POST['fecAlta']));
  13.    
  14.     if ( $objCliente->actualizar(array($usuario,$password,$email,$nombre,$fecAlta),$id_usuario) == true){
  15.         echo 'Datos guardados';
  16.     }else{
  17.         echo 'Se produjo un error. Intente nuevamente';
  18.     }
  19. }else{
  20.     if(isset($_GET['id'])){
  21.        
  22.         require('clases/cliente.class.php');
  23.         $objCliente=new Cliente;
  24.         $consulta = $objCliente->mostrar_cliente($_GET['id_usuario']);
  25.         $cliente = mysql_fetch_array($consulta);
  26.     ?>
  27.     <form id="frmClienteActualizar" name="frmClienteActualizar" method="post" action="actualizar.php" onsubmit="ActualizarDatos(); return false">
  28.         <input type="hidden" name="id_usuario" id="id_usuario" value="<?php echo $cliente['id_usuario']?>" />
  29.         <p>
  30.       <label>Usuario<br />
  31.       <input class="text" type="text" name="usuario" id="usuario" value="<?php echo $cliente['usuario']?>" />
  32.       </label>
  33.       </p>
  34.       <p>
  35.         <label>Password<br />
  36.         <input class="text" type="text" name="password" id="password" value="<?php echo $cliente['password']?>" />
  37.         </label>
  38.       </p>
  39.       <p>
  40.         <label>E-mail<br />
  41.         <input class="text" type="text" name="email" id="email" value="<?php echo $cliente['email']?>" />
  42.         </label>
  43.       </p>
  44.       <p>
  45.         <label>Nombre<br />
  46.         <input class="text" type="text" name="nombre" id="nombre" value="<?php echo $cliente['nombre']?>" />
  47.         </label>
  48.       </p>
  49.       <p>
  50.         <label>Fecha de alta <a onclick="show_calendar()" style="cursor: pointer;"><small>(calendario)</small></a><br />
  51.         <input readonly="readonly" class="text" type="text" name="fecAlta" id="fecAlta" value="<?php echo $cliente['fecAlta'] ?>" />
  52.         <div id="calendario" style="display:none;"><?php calendar_html() ?></div>
  53.         </label>
  54.       </p>
  55.       <p>
  56.         <input type="submit" name="submit" id="button" value="Enviar" />
  57.         <label></label>
  58.         <input type="button" name="cancelar" id="cancelar" value="Cancelar" onclick="Cancelar()" />
  59.       </p>
  60.     </form>
  61.     <?php
  62.     }
  63. }
  64. ?>

Los errores:

NOTICE: UNDEFINED INDEX: ID_USUARIO IN C:\WAMP\WWW\INVENTARIO\ACTUALIZAR.PHP ON LINE 24

WARNING: MYSQL_FETCH_ARRAY() EXPECTS PARAMETER 1 TO BE RESOURCE, BOOLEAN GIVEN IN C:\WAMP\WWW\INVENTARIO\ACTUALIZAR.PHP ON LINE 25

Linea 24 y 25:
Código PHP:
Ver original
  1. $consulta = $objCliente->mostrar_cliente($_GET['id_usuario']);
  2.         $cliente = mysql_fetch_array($consulta);

Espero puedan ayudarme! Gracias y que tengais una buena tarde!
  #2 (permalink)  
Antiguo 16/11/2011, 13:15
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Error al "actualizar" datos desde php mysql

bueno, lo del index, parece que por una lado manejas POST y por otro lado GET

$id_usuario = htmlspecialchars(trim($_POST['id_usuario']));
$consulta = $objCliente->mostrar_cliente($_GET['id_usuario']);

en cuanto al otro error, habría que ver si se está haciendo bien la conexión a la BD y si tu consulta es correcta, ya que ahí indica que el resultado de la consulta no es válido al hacer el fetch_array
  #3 (permalink)  
Antiguo 16/11/2011, 13:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al "actualizar" datos desde php mysql

Pues ese notice te esta diciendo que no existe $_GET['id_usuario'] por ende yo creo que tu consulta falla ya que le pasas un valor nulo.

Saludos.
  #4 (permalink)  
Antiguo 16/11/2011, 15:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Error al "actualizar" datos desde php mysql

Hola amigosss! Eh avanzadoo jee. Ahora cargo el usuario que quiero editar y me sale todo ok. Pero al modificarlo y dar click en enviar me salta: Notice: undefined Index: Id_usuario In: actualizar.php on line 7....
Notice: undefined Index: usuario 8 ... y haci sucesivamente con los siguientes items:
Código PHP:
Ver original
  1. $id_usuario = htmlspecialchars(trim($_POST['id_usuario']));
  2. * * $usuario = htmlspecialchars(trim($_POST['usuario']));
  3. * * $password = htmlspecialchars(trim($_POST['password']));
  4. * * $email = htmlspecialchars(trim($_POST['email']));
  5. * * $nombre = htmlspecialchars(trim($_POST['nombre']));
  6. * * $fecAlta = htmlspecialchars(trim($_POST['fecAlta']));
A que se puede deber esto?? Thank's!

Última edición por emanuel_9614; 16/11/2011 a las 15:32
  #5 (permalink)  
Antiguo 16/11/2011, 15:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al "actualizar" datos desde php mysql

Eso te sale porque no existen esos elementos en el array $_POST es decir no estas enviando esos datos en tu <form>, asegurate que los <input> esten en el <form> que estas enviando desde HTML.

Saludos.
  #6 (permalink)  
Antiguo 16/11/2011, 16:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Error al "actualizar" datos desde php mysql

Gracias por responder GatorV el form esta incluido en el php (actualizar.php)
  #7 (permalink)  
Antiguo 16/11/2011, 16:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al "actualizar" datos desde php mysql

Haz un var_dump($_POST) para que veas que variables te estan regresando desde tu formulario, ahora veo un onsubmit en tu formulario, lo que me hace pensar que con javascript estas interceptando el envío, ¿es así?

Pon el código JS que usas para enviarlo...
  #8 (permalink)  
Antiguo 16/11/2011, 17:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 78
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Error al "actualizar" datos desde php mysql

Siii al darle enviar da un JS con los erroress! Como hago lo de var_dump($_POST)? es que no se muxo de php :S
  #9 (permalink)  
Antiguo 17/11/2011, 11:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al "actualizar" datos desde php mysql

Puedes usar una herramienta como firebug, esta te permite analizar los requests que hagas con AJAX a tu servidor y ver las respuestas.

Saludos.

Etiquetas: mysql, actualizaciones
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:12.