Foros del Web » Programando para Internet » PHP »

editar con php base de datos

Estas en el tema de editar con php base de datos en el foro de PHP en Foros del Web. wenas lo q necesito hacer es editar un campo especifico de una base de datos la base de datos es asi (ejemplo): tabla Usuarios ID ...
  #1 (permalink)  
Antiguo 21/08/2006, 19:59
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
editar con php base de datos

wenas lo q necesito hacer es editar un campo especifico de una base de datos
la base de datos es asi (ejemplo): tabla Usuarios
ID Nick Pass nivel
1 daniel daniel1 1

estou usando este codigo en mi php, por el cual le envio dos variables por post q son nuevonick y nuevonivel
este es mi php:
plzz una ayudita.
miren estoy intentandolo asi ahora:

Código PHP:
Código PHP:
$con mysql_connect($bd_host$bd_usuario$bd_password); 
mysql_select_db($bd_base$con); 

if (isset(
$_POST['nuevonick'])){ 
$sql "SELECT * FROM usuarios WHERE nick = '".$_POST['nuevonick']."'" 

$result mysql_query($sql); 

$sql "UPDATE usuarios SET nivel='".$_POST['nuevonivel']."'"

$result mysql_query($sql); 

}else{ 

print 
"&men_mod=Error!!, Especifica los datos.&"


?> 
hjago eso pero no me funciona, no esoty seguro pero talves esta forma es vieja o algo asi, si alguein sabe como porfavor les pido q me ayuden

saludos ^^
  #2 (permalink)  
Antiguo 21/08/2006, 21:23
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 17 años, 9 meses
Puntos: 34
Código PHP:
mysql_query("UPDATE tabla SET campo= valor_del_campo",$conexion); 
La actualizacion se lleva a cabo de esa forma, necesitas especificar que registro va a ser actualizado de lo contrario se actualizaran todos los registros.

En webtaller,desarrolloweb o maestros del web puedes encontrar varios manuales que te indican detalladamente como hacerlo.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #3 (permalink)  
Antiguo 21/08/2006, 21:35
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Calculo por el codigo que lo que pretendes hacer es acutalizar el nivel del usuario que llega por $_POST['nuevonick'], y que si ese nick, existe, actualice su nivel, para eso tu Update como bien dice bitbow, necesita de un condicional "WHERE", para que se apliquen los cambios para ese Nick por lo cual tu consulta en el Update quedaría

Código PHP:
<?
if (isset($_POST['nuevonick'])){  
$sql "SELECT * FROM usuarios WHERE nick = '".$_POST['nuevonick']."'"  

$result mysql_query($sql);  
$nickbd mysql_fetch_array($result);
$sql "UPDATE usuarios SET nivel='".$_POST['nuevonivel']."' WHERE nick='".$nickbd['nick']."'";

$result mysql_query($sql);  

}else{  

print 
"&men_mod=Error!!, Especifica los datos.&";  

}  
?>
Con esto, tomas el valor del nick, del primer Select, si no devuelve nada, pues no actualizará nada en la consulta de UPDATE, en realidad actualizaria el nick=''

Pero si el nick que recibes por post, existe en la base de datos, actualizarás ese nick, es decir por posta mandas PEPE

en tu consulta se veria asi:

$sql = "UPDATE usuarios SET nivel='3' WHERE nick='PEPE'";

Espero que te haya servido, saludos
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #4 (permalink)  
Antiguo 22/08/2006, 16:26
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
grax por los conesejos!!
weno intente de todas las formas q me dijeron, pero nada, no hace ningun cambio en la tabla y la q impreme en la pag solo es undefined

nose por q sigo invcestigando. si lo puedo hacer les aviso

PD: si alguien tiene otra idea seria de mucha ayuda..

saludos y grax!
  #5 (permalink)  
Antiguo 22/08/2006, 18:00
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
weno ahora lo estoy haciendo asi:

Código PHP:
$con mysql_connect($bd_host$bd_usuario$bd_password);
mysql_select_db($bd_base$con);

if(
trim($_POST['camnuevonick']) != "" && trim($_POST['camnuevonivel']) != "")
{
$sql "SELECT id FROM usuarios WHERE nick='".$_POST['camnuevonick']."'";
$result mysql_query($sql);
if(
$row mysql_fetch_array($result))
{
$sql "UPDATE usuarios WHERE id='$result' SET nivel='".$_POST['camnuevonivel']."'"
$result mysql_query($sql);
print 
"&mensajecam=Estas Registrado ".$_POST['camnuevonivel']."!!.&";
         return; 
}
else
{

         print 
"&mensajecam=fallo.&";
         return; 
}
mysql_free_result($result);
}
else
{
         print 
"&mensajecam=Tienes Q Llenar Todos Los Datos.&";
         return; 
}
mysql_close(); 
y siguen los problemas.. pero parece q masomenos por ahi va la cosa xD, ya q ahora no me muestra undefined en la pag ya me muestra el mensaje
"Estas Registrado !!" osea q al parecer funciona mejor :P

pero no me actualiza el campo de valor, en la tabla todo se queda igual.

q podria ser??
saludos!
  #6 (permalink)  
Antiguo 22/08/2006, 18:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Un detalle ..

Si tu generas esos "query strings" tipo:

print "&mensajecam=Tienes Q Llenar Todos Los Datos.&";

por què lo piensas cargar a una animaciòn Flash por su "loadVars()" .. El dato que compones en la variable que define tu "query string" debería ser codificada para evitar problemas con espacios, acentos .. etc.

Me refiero a aplicar: url_encode()

Código PHP:
print "&mensajecam=".url_encode("Tienes Q Llenar Todos Los Datos")."&"
(y así con todo ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 22/08/2006, 18:22
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
=o ok grax por recordarmelo xD

pero habalndo de la actualizacion...

tu q opinas?? :P
esta bien el codigo le falta algo, le sobra, etc??


es q llevo dias intentandolo y de una manera u otra no me funciona U.u!!!

lo raro es q e hehco sistemas de registro y logedo de usuarios con mysql de la misma forma y eso funciona, solo esto del update como q no quiere


PD:si quiren ver el ejemplo esta aqui: http://chat521.iespana.es
PD:ahi se puden registrar y logear, y yo como admin puedo entrar a un lugar donde envio dos variables "nick (el nick del usuario) y nievel (el nuevo nivel q le quiero dar), y son las q utilizo en el php.

saludos!
  #8 (permalink)  
Antiguo 22/08/2006, 18:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El código que presentas tiene un montòn de errores ...

Código PHP:
$sql "SELECT id FROM usuarios WHERE nick='".$_POST['camnuevonick']."'"
$result mysql_query($sql);
// te faltó obtener el supuesto único resgistro que obtienes ahí (asumimos que los nicks son ùnicos)

// de todas formas no está de más "ver si te arrojó" resultados:

if (mysql_num_rows($result) == 1){

  
$id=mysql_result($result,0,"id");
 
  
// nunca he visto una sentencia SQL tipo UPDATE con el "WHERE" antes que el SET  .. usalo tipo:

   
$sql "UPDATE usuarios SET nivel='".$_POST['camnuevonivel']."' WHERE id='".$id."'";  
   
$result mysql_query($sql); 
   print 
"&mensajecam=Estas Registrado ".$_POST['camnuevonivel']."!!.&"
         return;  
  }

(revisa los cierres de los IF() .. no le presté mucha atención a eso ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 22/08/2006, 18:54
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
eso es..

jeje gracias por ayudarme cluster!! quedo perfecto..

Weno como dicen: "con Errores se Aprende"


jejej asi q ya aprendi un poquito mas..

Muchas grax y 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 16:30.