Foros del Web » Programando para Internet » PHP »

No logro que me funcione UPDATE

Estas en el tema de No logro que me funcione UPDATE en el foro de PHP en Foros del Web. Buenas noches, Llevo varios dias intentando que me funcione la funcion UPDATE para actualizar unos registros de una tabla Tengo tres archivos: permisos.php (donde recojo ...
  #1 (permalink)  
Antiguo 08/03/2016, 16:56
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
No logro que me funcione UPDATE

Buenas noches,

Llevo varios dias intentando que me funcione la funcion UPDATE para actualizar unos registros de una tabla

Tengo tres archivos: permisos.php (donde recojo la tabla que toma los datos de SQL), actualiza.php (formulario donde realizar los cambios) y upd_socios.php (donde esta el código que va asociado al formulario para ejecutar la función UPDATE)

Los dos primeros enlazan bien, el problema es con el tercero, en el que me aparece el siguiente error:
Cita:
Notice: Undefined index: Nombre in C:\xampp\htdocs\Trabajo_3\include\upd_socio.php on line 4

Notice: Undefined index: Email in C:\xampp\htdocs\Trabajo_3\include\upd_socio.php on line 4

Notice: Undefined index: Password in C:\xampp\htdocs\Trabajo_3\include\upd_socio.php on line 4

Notice: Undefined index: id in C:\xampp\htdocs\Trabajo_3\include\upd_socio.php on line 4

¿Me pueden ayudar? Gracias de antemano

permisos.php:

Código PHP:
    <?php
                
require ("../conect/conexion.php");

                
                
$resultado =mysqli_query($con"SELECT * FROM `usuarios` ") or die("Error en: $resultado: " mysqli_error());;        
                    
?>
                <table table border='1'; class='table table-hover'>
                    <tr class='warning'>
                        <td>Id</td>
                        <td>Nombre</td>
                        <td>Email</td>
                        <td>Usuario</td>
                        <td>Password</td>
                        <td>Editar</td>
                        <td>Borrar</td>
                    </tr>

                 <tbody>
                 <?php while ($row mysqli_fetch_array($resultado)){?>
                     <tr class="success">
                         <td><?php echo $row[0];?></td>
                         <td><?php echo $row[1];?></td>
                         <td><?php echo $row[2];?></td>
                         <td><?php echo $row[3];?></td>
                         <td><?php echo $row[4];?></td>
                        <td> <a href="http://www.forosdelweb.com/f18/php/actualizar.php?id=<?php echo $row[0];?>"><img src="http://www.forosdelweb.com/f18/img/update.png" alt="Actualizar" /></a></td>
                           <td>  <a href="http://www.forosdelweb.com/f18/include/eliminar.php?id=<?php echo $row[0];?>"><img src="http://www.forosdelweb.com/f18/img/delete.png" alt="Eliminar" /></a></td>
                     </tr>
                     <?php ?>
                     </tbody>
                        </table>
-------------------------------------------------
actualizar.php
Código HTML:
<?php 
require ("../conect/conexion.php");

$consulta=mysqli_query($con, "SELECT * FROM usuarios WHERE iduser=".$_REQUEST['id']."");

	$row=mysqli_fetch_array($consulta);
	

?>
 
                  <form action="../include/upd_socio.php?id=<?php echo $_REQUEST['id'];?>" method="POST" enctype="application/x-www-form-urlencoded" name="add">
                    <br/>
                    <label>Id <br/>
                    </label>
                    <input type="text" name="iduser" readonly value="<?php echo $row[0];?>"/>
                    <label>Nombre <br/>
                    </label>
                    <input name="Nombre" type="text" value="<?php echo $row[1];?>"/>
                    <label>Email <br/>
                    </label>
                    <input name="Email" type="text" value="<?php echo $row[2];?>">
                    <label>Usuario <br/>
                    </label>
                    <input name="Usuario" type="text" value="<?php echo $row[3];?>">
                    <label>Password <br/>
                    </label>
                    <input name="Password" type="text" value="<?php echo $row[4];?>">
                    <br/>
                    <br/>
                    <br/>
                    <input type="submit" name="Enviar" value="Agregar">
                
                  </form> 
-------------------------------------------------
upd_socio.php

Código PHP:

<?php 
require ("../conect/conexion.php");

mysqli_query($con"UPDATE usuarios SET  Nombre".$_POST["Nombre"].", Email".$_POST["Email"].", Usuario".$_POST["Password"]." WHERE iduser".$_REQUEST["id"]."");

echo 
"Los cambios han sido realizados";
if(
mysqli_connect_errno()){
        echo 
'Si eliminar : 'mysqli_connect_error();
        exit();
    }else{
        
header("Location: ../php/permisos.php");
    }

?>
  #2 (permalink)  
Antiguo 08/03/2016, 17:26
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: No logro que me funcione UPDATE

No uses request para empezar, muy mala práctica. Es más fácil que te vulneren tu sitio web.
Para empezar, pregunta si recibes los post
Código PHP:
Ver original
  1. if(isset($_POST['nombre'],$_POST['...'])){
  2.    //consulta mysql
  3. }

Haz un var_dump($_POST); y asegurate que recibas todos los valores. Una vez verificado, no es necesario mantenerlo.

Y por último en la consulta, para actualizar deberías tener

Código SQL:
Ver original
  1. UPDATE usuarios SET Nombre = "$_POST['Nombre']"
  #3 (permalink)  
Antiguo 09/03/2016, 04:25
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: No logro que me funcione UPDATE

Cita:
Iniciado por rodocoyote15 Ver Mensaje
No uses request para empezar, muy mala práctica. Es más fácil que te vulneren tu sitio web.
Para empezar, pregunta si recibes los post
Código PHP:
Ver original
  1. if(isset($_POST['nombre'],$_POST['...'])){
  2.    //consulta mysql
  3. }

Haz un var_dump($_POST); y asegurate que recibas todos los valores. Una vez verificado, no es necesario mantenerlo.

Y por último en la consulta, para actualizar deberías tener

Código SQL:
Ver original
  1. UPDATE usuarios SET Nombre = "$_POST['Nombre']"
Hola de nuevo,

He seguido los pasos según me comentaste y la cosa sigue igual. Cuando le paso var_dump($_POST) me sale eso: array(0) { }

¿qué significa?

Muchas gracias
  #4 (permalink)  
Antiguo 09/03/2016, 04:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No logro que me funcione UPDATE

Cita:
Cuando le paso var_dump($_POST) me sale eso: array(0) { }

¿qué significa?
Que no estás recibiendo NADA por POST...
Creo que es medio evidente, ¿no? A fin de cuentas eso es un array vacío.

Vas a tener que revisar con cuidado tu FORM, porque no está haciendo lo que crees que hace.
__________________
¿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 09/03/2016, 04:52
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: No logro que me funcione UPDATE

Hola Eowyn4,

Eso significa que no te llegan las variables que estás enviando por POST,

Aparte de esto, yo te sugiero que verifiques y valides que recibes cada variable antes de usarla, algo tal que así:

Código PHP:
Ver original
  1. if ( isset($_POST['Nombre']) && !empty($_POST['Nombre']) ) {
  2. $nombre = trim(strip_tags($_POST['Nombre'])); // Luego utilizarás $nombre en lugar de $_POST['Nombre'] en tu query
  3. }

No obstante, lo primero que debes resolver es el problema de que no te llegue nada por $_POST.
  #6 (permalink)  
Antiguo 09/03/2016, 07:21
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: No logro que me funcione UPDATE

Muchas gracias por las indicaciones

Por más que reviso el código no doy con el error. Me tocará hacerlo de nuevo


Saludos
  #7 (permalink)  
Antiguo 09/03/2016, 21:38
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: No logro que me funcione UPDATE

No entiendo para que usas esto enctype="application/x-www-form-urlencoded"

Ya te dijeron que hacer.. comprueba si estas enviando la variable NOMBRE y que contiene... con el IF y el seteo indicado e imprimelo

Código PHP:
Ver original
  1. if(isset($_POST['Nombre'])){
  2. echo $_POST['Nombre'];
  3. }else{
  4. echo "No hay variable";
  5. }

Asegurate de estar enviando el ID del usuario, y evita el REQUEST, cambialo por $_POST o $GET segun el caso. Y PONLE UN SIGNO (=) ES IGUAL a tu WHERE
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 10/03/2016 a las 06:26
  #8 (permalink)  
Antiguo 10/03/2016, 06:22
 
Fecha de Ingreso: septiembre-2014
Mensajes: 79
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: No logro que me funcione UPDATE

Código PHP:
Ver original
  1. mysqli_query($con, "UPDATE usuarios SET  Nombre='".$_POST["Nombre"]."', Email='".$_POST["Email"]."', Usuario='".$_POST["Password"]."' WHERE iduser=".$_REQUEST["id"]."");
??????

Etiquetas: formulario, mysql, registro, select, sql, tabla, update, usuarios
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 04:36.