Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

problema con actualizacion de datos en sql

Estas en el tema de problema con actualizacion de datos en sql en el foro de Bases de Datos General en Foros del Web. hola soy medio novato con esto de mysql, y por favor quisiera que me ayuden cual es el problema de este codigo que se supone ...
  #1 (permalink)  
Antiguo 26/01/2011, 21:45
 
Fecha de Ingreso: mayo-2010
Mensajes: 13
Antigüedad: 14 años, 6 meses
Puntos: 0
problema con actualizacion de datos en sql

hola soy medio novato con esto de mysql, y por favor quisiera que me ayuden cual es el problema de este codigo que se supone que tiene que actualizar la base de datos, pero no ase nada.

Código PHP:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8">
<title>Actualizar BD</title>
</head>

<?php

//Nos conectamos a la base de datos
$bd_host "localhost";
$bd_usuario "user";
$bd_password "pass";
$bd_base "base";
$conexion mysql_connect($bd_host$bd_usuario$bd_password);
mysql_select_db($bd_base$conexion);

//Convertimos los datos del formulario a cadenas.
$id $_GET['ID'];
$usuario $_GET['usuario'];
$email $_GET['email'];
$contrasena $_GET['contrasena'];
$nombre $_GET['nombre'];

$resultados=mysql_query("SELECT * FROM users WHERE users.ID LIKE '%{$id}%'"$conexion);
$actual="UPDATE b32_6683449_principal.users SET
users.usuario=$usuario,
users.email=$email,
users.nombre=$nombre,
users.contrasena=$contrasena, date = NOW( )
WHERE users.ID=$id"
mysql_query $actual $conexion );


//Mostramos el encabezado de los resultados dentro de un formulario que actualizará datos
echo"<form action=ejemplo.php method =post><table border=1 cellspacing=1 cellpadding=1>

<tr>
<td><b>Usuario</b></td>
<td><b>Email</b></td>
<td><b>Nombre</b></td>
<td><b>Contrasena</b></td>
</tr>"
;

//Creamos el bucle para los resultados
while($row=mysql_fetch_array($resultados)){

echo
"
<tr>
<td><input type=text name=nombreact size=20 maxlength=30 value=$row[usuario]></td>
<td><input type=text name=dire size=20 maxlength=30 value=$row[email]></td>
<td><input type=text name=tel size=20 maxlength=30 value=$row[nombre]></td>
<td><input type=text name=email size=20 maxlength=30 value=$row[contrasena]></td>
<td><input type=submit name=boton value=ACTUALIZAR></td>
</tr>"
;

}

echo
"</table></form>";



//Cerramos la conexión con MySQL
mysql_close($conexion);
?>

<body>
  #2 (permalink)  
Antiguo 27/01/2011, 05:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con actualizacion de datos en sql

SI los valores que asignas son cadenas de texto, las mismas deben estar encerradas ente apóstrofes en la sentencia:

Código MySQL:
Ver original
  1. UPDATE b32_6683449_principal.users SET
  2. users.usuario='$usuario',
  3. users.email='$email',
  4. users.nombre='$nombre',
  5. users.contrasena='$contrasena',
  6. date = NOW( )
  7. WHERE users.ID=$id
Unicamente se dejan sin apostrofes los valores numéricos enteros, decimales si y sólo si están formateados con punto decimal y no coma, los NULL , las variables de MySQL (locales de los SP, globales o de usuario) y los booleanos TRUE y FALSE. Todo lo demás se pone ente apostrofes (no confundir con los acentos inversos).

Por otro lado, ten cuidado con usar nombres de campos que sean palabras reservadas del lenguaje, como el caso de DATE. DATE es un tipo de dato y además el nombre de una función. Puede generar un error de sintaxis indetectable a simple vista.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/01/2011, 14:28
 
Fecha de Ingreso: mayo-2010
Mensajes: 13
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: problema con actualizacion de datos en sql

disculpa, pero tampoco funca, no se que pasa averigue por todos lados llevo un dia entero tratando de solucionar el problema y no anda
  #4 (permalink)  
Antiguo 27/01/2011, 15:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problema con actualizacion de datos en sql

Cita:
Iniciado por chapu34 Ver Mensaje
disculpa, pero tampoco funca, no se que pasa averigue por todos lados llevo un dia entero tratando de solucionar el problema y no anda
Supongo que no creerás que con decirme "no funca", me estás diciendo algo... ¿No?
Necesitamos que seas más específico. "No funca" no es un error ni de sintaxis, ni de SQL ni de PHP.

¿Qué errores te devuelve?
¿Probaste la sentencia de SQL directamente con alguna interfase en el MySQL (phpMyAdmin, Navicat, Workbench) para ver si está mal escrita?
¿Capturaste los errores devueltos por PHP?
¿Verificaste que los datos se inserten correctamente en la sentencia SQL antes de enviarla a ejecutar?
¿Estás comprobando que la conexión esté abierta y sea válida?
¿La ejecución del mysql_query() devuelve un result válido?

Concretamente: ¿Qué probaste?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/01/2011, 20:32
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: problema con actualizacion de datos en sql

hacele un echo a la query y ejecutala en phpmyadmin o cualquier analizador de consultas

hace esto

echo $resultados=mysql_query("SELECT * ............etc);

y si quieres que cuando llegue a esa consulta se salga y no haga nada mas...pone exit;

asi...

echo $resultados=mysql_query("SELECT * FROM .......etc); exit;

PD: los puntos y etc...na que es que tu consulta era muy larga...y la abrevie...

Etiquetas: bd, mysql, php
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 23:00.