Comunidad de diseño web y desarrollo en internet online

Problema consulta en php (update)

Citar            
MensajeEscrito el 05 Jul 2008 11:36 pm
Hola, tengo un pequeño problema de php cuando quiero actualizar datos de mi base ..Soy nueva en php y no puedo darme cuenta qué falla.. a ver si ustedes me ayudan..

Es asi: un formulario que va a otra pagina y toma los datos y los actualiza y tendria que sobreescribirlos en mi base, pero a la hora de ver como quedo la base está igual.

Este es mi codigo del formulario :

<form action="edicion.php" method="post" enctype="application/x-www-form-urlencoded" name="form" style="width:120px">

Usuario a editar: <input type="text" name="usuarioE" size="10" style=" background-color:#AFE9F5;width:100px;height:14px;color:#000066;font-family:verdana;font-size:11px;"/><br><br>

Nuevo Nick: <input type="text" name="nnick" size="10" style=" background-color:#FFFFFF;width:100px;height:14px;color:#000066;font-family:verdana;font-size:11px;"/><br><br>

Nuevo Nombre: <input type="text" name="nnombre" size="10" style=" background-color:#FFFFFF;width:100px;height:14px;color:#000066;font-family:verdana;font-size:11px"/><br><br>

Nuevo Apellido: <input type="text" name="napellido" size="10" style=" background-color:#FFFFFF;width:100px;height:14px;color:#000066;font-family:verdana;font-size:11px"/><br><br>

Nuevo Mail: <input type="text" name="nmail" size="10" style=" background-color:#FFFFFF;width:100px;height:14px;color:#000066;font-family:verdana;font-size:11px"/><br><br>

<div class="btn"><input id="btnC" type="submit" name="editar" value="Editar" /></div>

</form>

Y el php:

<?php

if(isset($_POST['editar'])){

$dbhost='localhost';
$dbusername='root';
$dbuserpass='mysql';
$dbname='db';


mysql_connect ('localhost', 'root', 'mysql');
mysql_select_db('db') or die("No se puede conectar a la Base de Datos");

if ( isset($_POST["usuario"])&& isset ($_POST["nnick"]) && isset ($_POST["nnombre"]) && isset ($_POST["napellido"]) && isset ($_POST["nmail"])) {

$usuario=$_POST['usuarioE'];
$nuevoUsuario=$_POST['nnick'];
$nuevoNombre=$_POST['nnombre'];
$nuevoApellido=$_POST['napellido'];
$nuevoMail=$_POST['nmail'];

if($usuario==NULL| $nuevoUsuario==NULL| $nuevoNombre==NULL|$nuevoApellido==NULL|$nuevoMail==NULL) {
header("Location: campoVacioNedit.php");
}else{

$check = mysql_query("SELECT * from usuarios");
while ($row=mysql_fetch_array($check)){
if($row["username"]==$usuario){
mysql_db_query("UPDATE usuarios SET name=$nuevoNombre, lastname=$nuevoApellido, nick=$nuevoUsuario, email=$nuevoMail, WHERE usuario='$usuarioE'");
echo("Los datos se han modificadoooooooooooooooooo");}

} mysql_free_result($check);

}
}
}
?>


Sé que hay algo mal pero no lo veo..
En mi base usuarios tengo

username
name
lastname
email
pass

Bueno, espero sus respuestas y muchas gracias desde ahora!

Por quemerita*

5 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 06 Jul 2008 03:19 am
No he logrado entender tu problema, te recomiendo que leas este post. Así podremos entender mejor tu problema y podremos ayudarte.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 06 Jul 2008 04:11 am

Código :

$usuario=$_POST['usuarioE'];
$nuevoUsuario=$_POST['nnick'];
$nuevoNombre=$_POST['nnombre'];
$nuevoApellido=$_POST['napellido'];
$nuevoMail=$_POST['nmail'];

if($usuario==NULL| $nuevoUsuario==NULL| $nuevoNombre==NULL|$nuevoApellido==NULL|$nuevoMail==NULL) {
header("Location: campoVacioNedit.php");
}else{

$check = mysql_query("SELECT * from usuarios");
while ($row=mysql_fetch_array($check)){
if($row["username"]==$usuario){
mysql_db_query("UPDATE usuarios SET name=$nuevoNombre, lastname=$nuevoApellido, nick=$nuevoUsuario, email=$nuevoMail, WHERE usuario='$usuarioE'");
echo("Los datos se han modificadoooooooooooooooooo");} 


Creo que el problema está en el where... en lugar de $usuarioE utiliza $usuario que fue la variable a la cual le asignaste el $_POST["usuarioE"]

Por mauril26

161 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 06 Jul 2008 04:37 pm
Mi problema es que no me edita el usuario que le indico con el input de "Usuario a editar"..
El procedimiento seria..
Escribo el usario a editar, escribo todos los campos que quiero cambiar.. y al mandar el formulario mediante el boton 'Editar', este haria los cambios..
Tomo el valor de el usuario a editar y lo comparo con alguno de la base, y si da verdadero osea si está ese usuario en la base, hago update de los valores q le indique antes..

Espero que se entienda. Pongo de nuevo mi code pero en el formato que se debe, perdon antes no lo sabia..



Formulario

Código :

<form action="edicion.php" method="post" enctype="application/x-www-form-urlencoded" name="form">

Usuario a editar: <input type="text" name="usuarioE" size="10" >

Nuevo Nick: <input type="text" name="nnick" size="10" >

Nuevo Nombre: <input type="text" name="nnombre" size="10">

Nuevo Apellido: <input type="text" name="napellido" size="10">

Nuevo Mail: <input type="text" name="nmail" size="10">

<div class="btn"><input id="btnC" type="submit" name="editar" value="Editar"  /></div>

</form>



PHP

Código :


<?php
if(isset($_POST['editar'])){

$dbhost='localhost';
$dbusername='root';
$dbuserpass='mysql';
$dbname='db';


mysql_connect ('localhost', 'root', 'mysql');
mysql_select_db('db') or die("No se puede conectar a la Base de Datos");

if (isset($_POST["usuario"])&& isset ($_POST["nnick"]) && isset ($_POST["nnombre"]) && isset ($_POST["napellido"]) && isset ($_POST["nmail"])) {

$usuario=$_POST['usuarioE'];
$nuevoUsuario=$_POST['nnick'];
$nuevoNombre=$_POST['nnombre'];
$nuevoApellido=$_POST['napellido'];
$nuevoMail=$_POST['nmail'];

   if (!empty($usuario) && !empty($nuevoUsuario) && !empty($nuevoNombre) && !empty($nuevoApellido) && !empty ($nuevoMail)) {
         
               $datos = mysql_db_query("select * from usuarios");
               
               while ($row=mysql_fetch_array($datos)){
                     if($row["username"]==$usuario){               
                     mysql_db_query("Update usuarios Set name='$nuevoNombre', lastname='$nuevoApellido', username=$'usuario', email=$'nuevoMail' Where username='$usuario'");
                     echo("Datos modificados");
               } mysql_free_result($datos);
            
      } else echo("Datos modificadossdsd ");
       }
      
       }
       }
      
?>




Gracias de nuevo.
Y con respecto a la respuesta de mauril, tampoco funcionó asi. Gracias igual

Por quemerita*

5 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 07 Jul 2008 04:15 am
Cambia

Código :

if (isset($_POST["usuario"])&& isset ($_POST["nnick"]) && isset ($_POST["nnombre"]) && isset ($_POST["napellido"]) && isset ($_POST["nmail"])) {


si te fijas el valor lo envias como:

usuarioE, por eso y al no encontrar esa variable, termina el proceso.

prueba a cambiar

Código :

if (isset($_POST["usuarioE"])&& isset ($_POST["nnick"]) && isset ($_POST["nnombre"]) && isset ($_POST["napellido"]) && isset ($_POST["nmail"])) {

Por Avaltel 2.0

22 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.