Foros del Web » Programando para Internet » PHP »

Actualizar Datos con Formulario y MySQL

Estas en el tema de Actualizar Datos con Formulario y MySQL en el foro de PHP en Foros del Web. Hola! Llevo días volviendome loca para modificar los registros de datos de los clientes. Tengo 2 formularios, el primero (ficha_clientes.php) me muestra todos los clientes ...
  #1 (permalink)  
Antiguo 25/08/2009, 09:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Actualizar Datos con Formulario y MySQL

Hola!

Llevo días volviendome loca para modificar los registros de datos de los clientes.

Tengo 2 formularios, el primero (ficha_clientes.php) me muestra todos los clientes y tiene un buscador que me permite seleccionar el cliente que yo quiera.

Una vez lo he seleccionado trato de modificar alguno de los campos, presiono el botón modificar y llego al formulario (modificar_cliente.php) y me da el mensaje de CLIENTE MODIFICADO.

Al volver al listado de clientes o mirar en la base de datos no me ha modificado nada de nada.

¿Me podéis ayudar?

Un saludo

ficha_clientes.php

Código PHP:
<tr>
    <td width="50%" height="414" bordercolor="#000000"><div class="nombre" align="left">
      <table width="default" border="3" bordercolor="#000000" bgcolor="#FFFF99">
        <tr>
          <td><strong>IdCliente:</strong></td>
          <td><input type="text" name="IdCliente" size="5" maxlength="5" value="<?php echo $fila["IdCliente"];?>"></td>
        </tr>
        <tr>
          <td><strong>Nombre:</strong></td>
          <td><input type="text" name="Nombre" size="20" maxlength="20" value="<?php echo $fila["Nombre"];?>"></td>
        </tr>
        <tr>
          <td><strong>Contrase&ntilde;a:</strong></td>
          <td><input type="text" name="Contrasena" size="16" maxlength="16" value="<?php echo $fila["Contrasena"];?>"></td>
        </tr>
        <tr>
          <td><strong>Apellidos:</strong></td>
          <td><input type="text" name="Apellidos" size="20" maxlength="20" value="<?php echo $fila["Apellidos"];?>"></td>
        </tr>
        <tr>
          <td><strong>Empresa:</strong></td>
          <td><input type="text" name="Empresa" size="30" maxlength="30" value="<?php echo $fila["Empresa"];?>"></td>
        </tr>
        <tr>
          <td><strong>Direcci&oacute;n:</strong></td>
          <td><input type="text" name="Direccion" value="<?php echo $fila["Direccion"];?>"></td>
        </tr>
        <tr>
          <td><strong>Poblaci&oacute;n:</strong></td>
          <td><input type="text" name="Poblacion" size="30" maxlength="30" value="<?php echo $fila["Poblacion"];?>"></td>
        </tr>
        <tr>
          <td><strong>Provincia:</strong></td>
          <td><input type="text" name="Provincia" size="30" maxlength="30" value="<?php echo $fila["Provincia"];?>"></td>
        </tr>
        <tr>
          <td><strong>C.P.:</strong></td>
          <td><input type="text" name="CP" size="5" maxlength="5" value="<?php echo $fila["CP"];?>"></td>
        </tr>
        <tr>
          <td><strong>Email:</strong></td>
          <td><input type="text" name="Email" size="30" maxlength="30" value="<?php echo $fila["Email"];?>"></td>
        </tr>
        <tr>
          <td><strong>Tel&eacute;fono:</strong></td>
          <td><input type="text" name="Telefono" size="9" maxlength="9" value="<?php echo $fila["Telefono"];?>"></td>
        </tr>
        <tr>
          <td><strong>Fecha de Alta:</strong></td>
          <td><input type="text" name="FechaAlta" size="20" maxlength="20" value="<?php echo $fila["FechaAlta"];?>"></td>
        </tr>
          <tr>
        <td><input name="enviar" type="submit" id="enviar" value="modificar"></td>
        </tr>
     </table>
</form>
<form id="enviar" name="enviar" method="post" action="modificar_cliente.php">
Con este código puedo ver los registros de mi base de datos hasta ahi bien.

modificar_cliente.php

Código PHP:
$_GET["IdCliente"];
$_GET["DNICIF"];
$_GET["Contrasena"];
$_GET["Nombre"];
$_GET["Apellidos"];
$_GET["Empresa"];
$_GET["Direccion"];
$_GET["Poblacion"];
$_GET["Provincia"];
$_GET["CP"];
$_GET["Email"];
$_GET["Telefono"];



include (
"conectar.inc.php"); // incluye base de datos
$sql="update clientes set DNICIF='".$_POST['$DNICIF']."', Contrasena='".$_POST['$Contrasena']."', Nombre='".$_POST['$Nombre']."', Apellidos='".$_POST['$Apellidos']."', Empresa='".$_POST['$Empresa']."', Direccion='".$_POST['$Direccion']."', Poblacion='".$_POST['$Poblacion']."', Provincia='".$_POST['$Provincia']."', CP='".$_POST['$CP']."', Email='".$_POST['$Email']."', Telefono='".$_POST['$Telefono']."' where IdCliente='".$_POST['$IdCliente']."'";// modifica registros de la tabla
 
$resultado mysql_query($sql);
  if (
$resultado)
  {
      echo  
"Cliente Modificado.";
     }
else {
echo 
"Error";

También he probado con la consulta a la base de datos así.

modificar_cliente.php

Código PHP:
include ("conectar.inc.php"); // incluye base de datos
$sql="update clientes set DNICIF='$DNICIF', Contrasena='$Contrasena', Nombre='$Nombre', Apellidos='$Apellidos', Empresa='$Empresa', Direccion='$Direccion', Poblacion='$Poblacion', Provincia='$Provincia', CP='$CP', Email='$Email', Telefono='$Telefono' where IdCliente='$IdCliente'";// modifica registros de la tabla
 
$resultado mysql_query($sql);
  if (
$resultado)
  {
      echo  
"Cliente Modificado.";
     }
else {
echo 
"Error";

Siempre me dice Cliente Modificado :S Pero me está engañando....

Gracias!
  #2 (permalink)  
Antiguo 25/08/2009, 09:37
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
Respuesta: Actualizar Datos con Formulario y MySQL

Porque tienes el tag de <form> fuera del formulario? Eso causa que no se envien los datos por POST a tu archivo.

Saludos.
  #3 (permalink)  
Antiguo 25/08/2009, 09:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Actualizar Datos con Formulario y MySQL

Hola

lo que pasa es que estas uasndo el metodo POST para enviar en ficha_clientes.php y para modificar_cliente.php estas usango GET lo que causa es que no puedas obtener los datos del formulario.

saludos
  #4 (permalink)  
Antiguo 25/08/2009, 09:51
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Actualizar Datos con Formulario y MySQL

tal como te dicen, es por el <form>

lo tienes asi

</form>
<form id="enviar" name="enviar" method="post" action="modificar_cliente.php">

y deberia ser asi

<form id="enviar" name="enviar" method="post" action="modificar_cliente.php">
...........
</form>

y además estás enviando por POST y estás recibiendo por GET
yo te recomiendo usar POST!

saludos
  #5 (permalink)  
Antiguo 29/08/2009, 09:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Actualizar Datos con Formulario y MySQL

Voy a intentar cambiarlo y a ver que ocurre. Muchas gracias a todos ;)
  #6 (permalink)  
Antiguo 31/08/2009, 03:39
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Actualizar Datos con Formulario y MySQL

Hola,

Sigo en el mismo problema, he cambiado GET por POST, pero es como si siguiese sin cogerme los datos de la tabla.

Ahi va:

ficha_clientes.php

Código PHP:
<form id="modificar" name="modificar" method="post" action="modificar_cliente.php">
<td>
  <?php 
    
if (mysql_num_rows($resultado2)==0){ echo "No hay resultados";} // num rows pregunta si se ha enviado alguna fila, por eso indicamos si es=0//
    
while ($fila=mysql_fetch_array($resultado2)) {
    
?>
  <tr>
    <td width="50%" height="414" bordercolor="#000000"><div class="nombre" align="left">
      <table width="default" border="3" bordercolor="#000000" bgcolor="#FFFF99">
        <tr>
          <td><strong>IdCliente:</strong></td>
          <td><input type="text" name="IdCliente" id="IdCliente" size="5" maxlength="5" value="<?php echo $fila["IdCliente"];?>"></td>
        </tr>
        <tr>
          <td><strong>DNI/CIF:</strong></td>
          <td><input type="text" name="DNICIF" id="DNICIF" size="10" maxlength="10" value="<?php echo $fila["DNICIF"];?>"></td>
        </tr>
        <tr>
          <td><strong>Contrase&ntilde;a:</strong></td>
          <td><input type="text" name="Contrasena" id="Contrasena" size="16" maxlength="16" value="<?php echo $fila["Contrasena"];?>"></td>
        </tr>
        <tr>
          <td><strong>Nombre:</strong></td>
          <td><input type="text" name="Nombre" id="Nombre" size="20" maxlength="20" value="<?php echo $fila["Nombre"];?>"></td>
        </tr>
        <tr>
          <td><strong>Apellidos:</strong></td>
          <td><input type="text" name="Apellidos" id="Apellidos" size="20" maxlength="20" value="<?php echo $fila["Apellidos"];?>"></td>
        </tr>
        <tr>
          <td><strong>Empresa:</strong></td>
          <td><input type="text" name="Empresa" id="Empresa" size="30" maxlength="30" value="<?php echo $fila["Empresa"];?>"></td>
        </tr>
        <tr>
          <td><strong>Direcci&oacute;n:</strong></td>
          <td><input type="text" name="Direccion" id="Direccion" value="<?php echo $fila["Direccion"];?>"></td>
        </tr>
        <tr>
          <td><strong>Poblaci&oacute;n:</strong></td>
          <td><input type="text" name="Poblacion" id="Poblacion" size="30" maxlength="30" value="<?php echo $fila["Poblacion"];?>"></td>
        </tr>
        <tr>
          <td><strong>Provincia:</strong></td>
          <td><input type="text" name="Provincia" id="Provincia" size="30" maxlength="30" value="<?php echo $fila["Provincia"];?>"></td>
        </tr>
        <tr>
          <td><strong>C.P.:</strong></td>
          <td><input type="text" name="CP" id="CP" size="5" maxlength="5" value="<?php echo $fila["CP"];?>"></td>
        </tr>
        <tr>
          <td><strong>Email:</strong></td>
          <td><input type="text" name="Email" id="Email" size="30" maxlength="30" value="<?php echo $fila["Email"];?>"></td>
        </tr>
        <tr>
          <td><strong>Tel&eacute;fono:</strong></td>
          <td><input type="text" name="Telefono" id="Telefono" size="9" maxlength="9" value="<?php echo $fila["Telefono"];?>"></td>
        </tr>
        <tr>
          <td><strong>Fecha de Alta:</strong></td>
          <td><input type="text" name="FechaAlta" id="FechaAlta" size="20" maxlength="20" value="<?php echo $fila["FechaAlta"];?>"></td>
        </tr>
        <tr>
          <td><input name="modificar" type="submit" id="modificar" value="modificar"></td>
          </tr>
      </table>
     <p>&nbsp;</p>
     <?php ?>
</form>
modificar_cliente.php

Código PHP:
<?php

$_POST
["IdCliente"];
$_POST["DNICIF"];
$_POST["Contrasena"];
$_POST["Nombre"];
$_POST["Apellidos"];
$_POST["Empresa"];
$_POST["Direccion"];
$_POST["Poblacion"];
$_POST["Provincia"];
$_POST["CP"];
$_POST["Email"];
$_POST["Telefono"];
$_POST["FechaAlta"];



include (
"conectar.inc.php"); // incluye base de datos
$sql="update clientes set IdCliente='".$_POST['$IdCliente']."', DNICIF='".$_POST['$DNICIF']."', Contrasena='".$_POST['$Contrasena']."', Nombre='".$_POST['$Nombre']."', Apellidos='".$_POST['$Apellidos']."', Empresa='".$_POST['$Empresa']."', Direccion='".$_POST['$Direccion']."', Poblacion='".$_POST['$Poblacion']."', Provincia='".$_POST['$Provincia']."', CP='".$_POST['$CP']."', Email='".$_POST['$Email']."', Telefono='".$_POST['$Telefono']."', FechaAlta='".$_POST['$FechaAlta']. "' where IdCliente='".$_POST['$IdCliente']."'";// // Direccion='$Direccion', Poblacion='$Poblacion', Provincia='$Provincia', CP='$CP', Email='$Email', Telefono='$Telefono' where IdCliente='$IdCliente'";// modifica registros de la tabla
 
$resultado mysql_query($sql);
  if (
$resultado)
  {
      echo  
"Cliente Modificado.";
     }
else {
echo 
"Error";
}

?>
Gracias por la ayuda.
  #7 (permalink)  
Antiguo 31/08/2009, 04:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 118
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Actualizar Datos con Formulario y MySQL

Bueno pues con cada forma tienes un problema, pero las 2 son válidas:

Código PHP:
$sql="update clientes set DNICIF='".$_POST['DNICIF']."', Contrasena='".$_POST['Contrasena']."', Nombre='".$_POST['Nombre']."', Apellidos='".$_POST['Apellidos']."', Empresa='".$_POST['Empresa']."', Direccion='".$_POST['Direccion']."', Poblacion='".$_POST['Poblacion']."', Provincia='".$_POST['Provincia']."', CP='".$_POST['CP']."', Email='".$_POST['Email']."', Telefono='".$_POST['Telefono']."' where IdCliente='".$_POST['IdCliente']."'";// modifica registros de la tabla 
en vez de
Código PHP:
$sql="update clientes set DNICIF='".$_POST['$DNICIF']."'... 
pon
Código PHP:
$sql="update clientes set DNICIF='".$_POST['DNICIF']."' 
vamos quita la "$" dentro del inidice de la matriz $_POST

y de la otra manera:

Código PHP:
$sql="update clientes set DNICIF='$DNICIF', Contrasena='$Contrasena'.... 
define antes las variables
Código PHP:
$DNICIF=$_POST['DNICIF'];
.... 
  #8 (permalink)  
Antiguo 31/08/2009, 05:06
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Actualizar Datos con Formulario y MySQL

Funciona! Mil Gracias, de verdad. Llevaba días aquí modificando cosas y luego era la más pequeña, pero claro hay que sabersela.

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 16:18.