Foros del Web » Programando para Internet » PHP »

No me funciona UPDATE en PHP

Estas en el tema de No me funciona UPDATE en PHP en el foro de PHP en Foros del Web. 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.. ...
  #1 (permalink)  
Antiguo 05/07/2008, 17:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
No me funciona UPDATE en PHP

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 :
Código HTML:
<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 acá el 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(
$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'");
                            
$mensaje "Los datos se han modificadoooooooooooooooooo";} 
    
        } 
mysql_free_result($check);

} echo(
"fdafdas");
   }
   } 

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.

Última edición por quemerita; 05/07/2008 a las 17:46
  #2 (permalink)  
Antiguo 08/07/2008, 07:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 38
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: No me funciona UPDATE en PHP

El problema es que no usas ningún control de error. Entonces a la mínima que pasa es difícil adivinar dónde está el problema.

Tienes el algoritmo tal que así:

Código:
if (todos_campos_llenos()){
      insertar_campos_en_bd();
}
Y debería ser así

Código:
if (todos_campos_llenos()){
      insertar_campos_en_bd();
}
else
      echo "Te has dejado un campo sin rellenar";
Si hicieras esto, te darías cuenta de que el error está en la interpretación de los campos del formulario. En éste el nombre se llama "usuarioE" y en el algoritmo compruebas si existe la variable "usuario". Si E. Evidentemente, nunca va a existir.

Pero insisto, el error no es ese, que es una chorrada, sino en dejar en manos del destino que todo vaya bien sin control de errores. Para eso no hace falta saber de php, ni hace falta saber ningún lenguaje.

Para cualquier otra duda, ya sabes.
  #3 (permalink)  
Antiguo 08/07/2008, 09:20
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: No me funciona UPDATE en PHP

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 08/07/2008, 09:25
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: No me funciona UPDATE en PHP

ummmmm por lo q veo t falta un update...
Código PHP:
if (empty($errores)) {
                
$sql "UPDATE articulos SET
                nombre='$nombre',
                Id_categoria = '$prim',
                Id_sub_categoria = '$sec',
                presentacion = '$presentacion',
                descripcion = '$descripcion',
                pic = '$pic' WHERE Id_articulo=$Id_articulo"

disculpa no diga mas pero es el tiempo q tngo.. ando enrollado con un codigo... pero t ayudare en lo q pueda.. por favor fijate en este codigo q tngo de update.. otra cosa... a tu form le faltan los echo d cada campo!!! esta pendiente d eso cuando es un update!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #5 (permalink)  
Antiguo 08/07/2008, 09:50
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No me funciona UPDATE en PHP

creo que el problema es esto isset($_POST["usuario"]), no existe usuario, es usuarioE.
te dejo el código un poco optimizado, esto te debe de dar el mismo resultado.
Código PHP:
$dbusername='root';
$dbuserpass='mysql';
$dbname='db';

//creamos el link de conexión
$con=mysql_connect ('localhost''root''mysql');
//seleccionamos la BD
mysql_select_db('db',$con) or die("No se puede conectar a la Base de Datos");
//averiguamos si todos los campos tienen información
if ( !empty($_POST["usuarioE"]) && !empty ($_POST["nnick"]) && !empty ($_POST["nnombre"]) && !empty ($_POST["napellido"]) && !empty ($_POST["nmail"])){
    
$usuario=$_POST['usuarioE'];
    
$nuevoUsuario=$_POST['nnick'];
    
$nuevoNombre=$_POST['nnombre'];
    
$nuevoApellido=$_POST['napellido'];
    
$nuevoMail=$_POST['nmail'];
    
mysql_query("UPDATE usuarios SET name=$nuevoNombre, lastname=$nuevoApellido, nick=$nuevoUsuario, email=$nuevoMail, WHERE username='$usuarioE'",$con);
    echo 
"Los datos se han modificadoooooooooooooooooo";} 
}
else{    
    
header("Location: campoVacioNedit.php"); 

suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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 05:17.