Foros del Web » Programando para Internet » PHP »

Actualizacion de un registro de BD

Estas en el tema de Actualizacion de un registro de BD en el foro de PHP en Foros del Web. Hola nuevamente, compañeros: Tengo una BD que quiero actualizar vía web. He subido dos páginas php: http://www.ajama.es/actualizar1.php http://www.ajama.es/actualizar2.php En la primera creo un menú despegable ...
  #1 (permalink)  
Antiguo 12/07/2009, 13:33
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Actualizacion de un registro de BD

Hola nuevamente, compañeros:
Tengo una BD que quiero actualizar vía web. He subido dos páginas php:
http://www.ajama.es/actualizar1.php
http://www.ajama.es/actualizar2.php
En la primera creo un menú despegable para ver la BD, y cambio el dato correspondiente. En la segunda hago un update para subir esa modificación a la BD, pero al visualizarla compruebo que el cambio no se ha producido, ¿Dónde tengo el error? Estos son los códigos:
----------------------------------
<title>actualizar1.php</title>

<?php
$conexion = mysql_connect("db160.1and1.es", "dbo284603800", "8p.Fx37E");
mysql_select_db("db284603800", $conexion);

$queEmp = "SELECT * FROM empresa ORDER BY nombre ASC";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);


echo '<FORM METHOD="POST" ACTION="actualizar2.php">Nombre<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select nombre From empresa Order By nombre";
$result=mysql_query($sSQL);

echo '<select name="nombre">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
?>
</select>
<br>
Localidad<br>
<INPUT TYPE="TEXT" NAME="localidad"><br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>


<h1>LISTADO DE INSCRITOS</h1>


</div>
</body>
</html>

------------------------------
<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?

$conexion = mysql_connect("db160.1and1.es", "dbo284603800", "8p.Fx37E");
mysql_select_db("db284603800", $conexion);

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update Clientes Set localidad='$localidad' Where nombre='$nombre'";
mysql_query($sSQL);
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="http://www.ajama.es/inscritos.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>
  #2 (permalink)  
Antiguo 12/07/2009, 13:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Actualizacion de un registro de BD

Deberías de comprobar el valor de mysql_error() después de ejecutar tu consulta, así puedes ver el error.

Por otro lado ve esto: http://www.php.net/variables.external te falta rescatar las variables en actualizar2.php

Saludos.
  #3 (permalink)  
Antiguo 13/07/2009, 06:04
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Actualizacion de un registro de BD

No me da ningún mensaje de error, simplemente no me actualiza la BD, a pesar de indicar que sí lo ha hecho.
En cuanto a las variables... me pierdo, el código lo he pillado de un tutorial y sólo he cambiado los nombres de las conexiones y la variables.
  #4 (permalink)  
Antiguo 13/07/2009, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Actualizacion de un registro de BD

Como te comento ve el link, si no rescatas las variables es por eso que no te hace el update ya que tu consulta queda como:
Código sql:
Ver original
  1. UPDATE Clientes SET localidad='' WHERE nombre=''

Saludos.
  #5 (permalink)  
Antiguo 14/07/2009, 08:21
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Actualizacion de un registro de BD

Gracias, pero no me entero.
He leído el link que me has envíado y no encuentro nada que me sirva (ningún ejemplo con UPDATE). También he revisado el código comparándolo con el tutorial del que lo saqué y ¡nada!
La verdad, mi nivel no da para mucho más.
  #6 (permalink)  
Antiguo 14/07/2009, 09:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Actualizacion de un registro de BD

La parte que te falta es rescatar las variables, si ves el link que te pase puedes aprender a hacerlo, si no rescatas tus variables en el archivo actualizar2.php no vas a poder actualizar.

El tutorial que estas leyendo esta basado en una directiva de PHP que es muy insegura (http://www.php.net/security.globals) es por eso que para poder leer tus variables vas a tener que usar el método correcto que viene explicado en el link que te deje.

Saludos.
  #7 (permalink)  
Antiguo 16/07/2009, 08:15
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Actualizacion de un registro de BD

Bien, gracias, seguiré intentándolo.
  #8 (permalink)  
Antiguo 17/07/2009, 14:47
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Actualizacion de un registro de BD

aqui te dejo un ejemplo usando POST para capturar las variables.


Código PHP:
 <?php
    
//definimos las variables de conexion a la db

    
define('DB_HOST''localhost');
    
define('DB_USER''usuario');
    
define('DB_PASSWORD''clave');
    
define('DB_DATABASE''user_db');

$nombre_usuario $_POST['nombre_usuario']; 
$localidad $_POST['localidad'];  


//Conectamos a la db
    
$conectar mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
    if(!
$conectar) {
        die(
'Failed to connect to server: ' mysql_error());
    }
    
    
//seleccionar db
    
$db mysql_select_db(DB_DATABASE);
    if(!
$db) {
        die(
"error al seleccionar db");
    }
    

//luego haces el query update
$link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
if(!
$link) {
        die(
'Failed to connect to server: ' mysql_error());
    }
    
    
//Select database
    
$db mysql_select_db(DB_DATABASE);
    if(!
$db) {
        die(
"Unable to select database");
    }
    
$sql="Update Clientes Set localidad='$localidad' Where nombre='$nombre'";
mysql_query($sql);

if (!
$nombre || !$localidad) { echo '  <font color="red" size="3">Error:</font>complete todos los campos requeridos.  '; }
else {
  echo 
'<br>usuario modificado con exito!';
  exit();
}
?>

saludos

espero que te sirva..
  #9 (permalink)  
Antiguo 18/07/2009, 12:07
Avatar de Lutaj  
Fecha de Ingreso: septiembre-2007
Ubicación: Sevilla
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Actualizacion de un registro de BD

Te agradezco mucho tu ayuda, pero lamentablemente tampoco me va. Me indica que se ha modificado con éxito, pero finalmente no realiza el cambio en la BD.
No lo entiendo, ya no sé qué más probar. De todos modos, muchas gracias.
  #10 (permalink)  
Antiguo 18/07/2009, 14:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Actualizacion de un registro de BD

Cita:
Iniciado por Lutaj Ver Mensaje
Te agradezco mucho tu ayuda, pero lamentablemente tampoco me va. Me indica que se ha modificado con éxito, pero finalmente no realiza el cambio en la BD.
No lo entiendo, ya no sé qué más probar. De todos modos, muchas gracias.
pues nose, a mi me funciona perfectamente, para actualizar una lista de enlaces en mi web.

nose mira si coinciden los nombres de los campos pasados por POST.
sino encuentras nada...

haz un echo de la consulta sql.

debajo del query pones:

Código PHP:
echo $sentencia_sql
y lo pones aqui el resultado..

saludos
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:21.