Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Duda: mysqli Update no modifica mis registros

Estas en el tema de Duda: mysqli Update no modifica mis registros en el foro de PHP en Foros del Web. Hola estoy haciendo una modificacion de datos desde un formulario y cuando le doy actualizar no avisa error ni nada y no modifica. Les paso ...
  #1 (permalink)  
Antiguo 16/08/2014, 15:08
 
Fecha de Ingreso: agosto-2014
Mensajes: 5
Antigüedad: 5 años, 6 meses
Puntos: 0
Duda: mysqli Update no modifica mis registros

Hola estoy haciendo una modificacion de datos desde un formulario y cuando le doy actualizar no avisa error ni nada y no modifica.
Les paso el codigo.

Código PHP:
 //compruevo que lleguen todos los datos
        if (isset($_GET['mod'])&&is_numeric($_GET['mod'])){  
          
          $id= $_GET ['mod'];
    
          $sql= mysqli_query ( $conexion, "select * from consulta_marcas where id=$id") ;
          //obtengo los datos del array
          $row = mysqli_fetch_array ($sql);
         
         }
    
     ?>
     
     
      <form action="modifica.php" method="post" >
          
          <!-- en los campos del formulario traigo los datos del mysqli_fetch_array para visualizarlos -->
          <table border=1>
          <tr>
          <td>id:</td>
          <td><input name="id" type="hidden" value="<?php if (isset ($row)){print $row['id'];};?>"/></td>
          </tr>  
           <tr>
          <td>Marca:</td>
          <td><input name="Marca" type="text" value="<?php if (isset ($row)){print $row ['Marca'];};?>"/></td>
          </tr>
          <tr>
          <td>Modelo:</td>
          <td><input name="Modelo" type="text" value="<?php if (isset ($row)){print $row ['Modelo'];};?>"/></td>
          </tr>
          <tr>
          <td>Km</td>
          <td><input name="km" type="text" value="<?php if (isset ($row)){print $row ['Km'];};?>"/></td>
          </tr>
          <tr>
          <td>A&ntildeo</td>
          <td><input name="Año" type="text" value="<?php if (isset ($row)){print $row ['Anio'];};?>"/></td>
          </tr>
          <tr>
          <td>Precio</td>
           <td><input name="Precio" type="text" value="<?php if (isset ($row)){print $row ['Precio'];};?>"/></td>
           </tr>
          <tr><td> <input type="submit" value="Modificar"/> </td></tr>
          
            
      
      </form>
   
   
     <?php
     
     
//chequeo que lleguen todas los datos
     
if (isset ($_POST['id'],$_POST['Marca'],$_POST['Modelo'],$_POST['Km'],$_POST['Año'],$_POST['Precio'])){
     
//creo las variables
       
$id$_POST['id'];
       
$marca$_POST['Marca'];
       
$modelo$_POST['Modelo'];
       
$km$_POST['Km'];
       
$año$_POST['Año'];
       
$precio$_POST['Precio'];

       
    
     
//modifico los datos
     
    
$sqlmysqli_query $conexion"UPDATE consulta_marcas SET id='$id',Marca='$marca',
                       Modelo='$modelo',Km='$km',Anio='$año',Precio='$precio' WHERE id='$id'"
) ;
    
    
//si esta todo OK muestro el mensaje
    
    
if (!$sql){
        echo 
"no se pudo modificar";
        } else {
            echo 
"registro modificado";
            
            }
    }
     print 
'</table>';
     
?>
  #2 (permalink)  
Antiguo 16/08/2014, 15:29
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 5 años, 11 meses
Puntos: 67
Respuesta: Duda: mysqli Update no modifica mis registros

Prueba de este modo:

Código PHP:
Ver original
  1. $sql= $conexion->query("UPDATE consulta_marcas SET id='$id',Marca='$marca',Modelo='$modelo',Km='$km',Anio='$año',Precio='$precio' WHERE id='$id'") ;

Saludos.
  #3 (permalink)  
Antiguo 16/08/2014, 16:17
 
Fecha de Ingreso: agosto-2014
Mensajes: 5
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Duda: mysqli Update no modifica mis registros

hola gracias por la respuesta lo puse así como dijiste pero no me funciona tampoco
  #4 (permalink)  
Antiguo 16/08/2014, 21:02
 
Fecha de Ingreso: julio-2013
Ubicación: Free Help :)
Mensajes: 14
Antigüedad: 6 años, 6 meses
Puntos: 0
Respuesta: Duda: mysqli Update no modifica mis registros

Prueba con esto manito:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.      //chequeo que lleguen todas los datos
  5. if (!empty($_POST['datos'])) {
  6.      //creo las variables
  7.  $id= $_POST['id'];
  8.  $marca= $_POST['Marca'];
  9.  $modelo= $_POST['Modelo'];
  10.  $km= $_POST['Km'];
  11.  $año= $_POST['Año'];
  12.  $precio= $_POST['Precio'];
  13.      //modifico los datos
  14.  //$sql= mysqli_query("UPDATE consulta_marcas SET id='$id',Marca='$marca',
  15.  //  Modelo='$modelo',Km='$km',Anio='$año',Precio='$precio' WHERE id='$id'", $conexion) ;
  16.     //si esta todo OK muestro el mensaje
  17.  if (empty($sql)){
  18.   echo "no se pudo modificar";
  19. } else {
  20.   echo "registro modificado";
  21. }
  22. }
  23. //compruevo que lleguen todos los datos
  24.  
  25.  
  26. if (isset($_GET['mod']) && is_numeric($_GET['mod'])){
  27.   $id= $_GET ['mod'];
  28.   //$sql= mysqli_query ( $conexion, "select * from consulta_marcas where id=$id") ;
  29.           //obtengo los datos del array
  30.   //$row = mysqli_fetch_array ($sql);
  31. }
  32. ?>
  33.  
  34.  
  35. <form action="modifica.php" method="post" >
  36.   <!-- en los campos del formulario traigo los datos del mysqli_fetch_array para visualizarlos -->
  37.   <table border=1>
  38.     <tr>
  39.       <td>id:</td>
  40.       <td><input name="id" type="hidden" value="<?php if (isset ($row)){print $row['id'];};?>"/></td>
  41.     </tr>
  42.     <tr>
  43.       <td>Marca:</td>
  44.       <td><input name="Marca" type="text" value="<?php if (isset ($row)){print $row ['Marca'];};?>"/></td>
  45.     </tr>
  46.     <tr>
  47.       <td>Modelo:</td>
  48.       <td><input name="Modelo" type="text" value="<?php if (isset ($row)){print $row ['Modelo'];};?>"/></td>
  49.     </tr>
  50.     <tr>
  51.       <td>Km</td>
  52.       <td><input name="km" type="text" value="<?php if (isset ($row)){print $row ['Km'];};?>"/></td>
  53.     </tr>
  54.     <tr>
  55.       <td>A&ntildeo</td>
  56.       <td><input name="Año" type="text" value="<?php if (isset ($row)){print $row ['Anio'];};?>"/></td>
  57.     </tr>
  58.     <tr>
  59.       <td>Precio</td>
  60.       <td><input name="Precio" type="text" value="<?php if (isset ($row)){print $row ['Precio'];};?>"/></td>
  61.     </tr>
  62.     <tr><td> <input name="datos" type="submit" value="Modificar"/> </td></tr>
  63.   </form>
  #5 (permalink)  
Antiguo 16/08/2014, 21:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 12 años, 2 meses
Puntos: 2654
Respuesta: Duda: mysqli Update no modifica mis registros

Un UPDATE no realiza cambio si y sólo si las condiciones del WHERE no se cumplen con ningún registro.
Dado que quu query es así:

Código MySQL:
Ver original
  1. UPDATE consulta_marcas
  2.     SET id='$id',
  3.     Marca='$marca',
  4.     Modelo='$modelo',
  5.     Km='$km',
  6.     Anio='$año',
  7.     Precio='$precio'
  8. WHERE id='$id' ;
Sólo podría no realizar cambios si $id no contiene datos. No nos olvidemos que el hecho de que exista (isset() devuelve TRUE), no implica necesariamente que contenga algo. Un isset('') devolvería TRUE, y sin embargo contiene una cadena vacía.
Por otro lado, su query está mal planteada conceptualmente, porque no sólo estás pretendiendo usar el campo "ID" de la tabla para el WHERE, sino que además lo estás modificando en la misma consulta. Eso está MAL.

Finalmente, por lo menos deberías verificar que no falle, y además que la query tenga la sintaxis correcta:
Código php:
Ver original
  1. $qry = "UPDATE consulta_marcas SET id='$id',Marca='$marca',
  2. Modelo='$modelo',Km='$km',Anio='$año',Precio='$precio' WHERE id='$id'";
  3. //verificamos el contenido de la consulta.
  4.  
  5. echo $qry;
  6. $sql= mysqli_query($qry, $conexion)
  7.    or die("erorr al ejecutar la consulta: ".mysqli_error());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/08/2014, 16:25
 
Fecha de Ingreso: agosto-2014
Mensajes: 5
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Duda: mysqli Update no modifica mis registros

solucionado, hice otra pagina RECIBE.PHP para recibir los datos y saqué el
Código PHP&quot:
Ver original
  1. if (isset ($_POST['id'],$_POST['Marca'],$_POST['Modelo'],$_POST['Km'],$_POST['Año'],$_POST['Precio']))

me quedó asi

Código PHP:
Ver original
  1. //creo las variables
  2.      $id= $_POST['id'];
  3.      $marca= $_POST['Marca'];
  4.      $modelo= $_POST['Modelo'];
  5.      $km= $_POST['Km'];
  6.      $año= $_POST['Año'];
  7.      $precio= $_POST['Precio'];
  8.  
  9.      
  10.  
  11.      //modifico los datos
  12.      
  13.    $sql= mysqli_query($conexion,"UPDATE consulta_marcas SET id='$id',Marca='$marca',
  14.      Modelo='$modelo',Km='$km',Anio='$año',Precio='$precio' WHERE id='$id'") ;
  15.    
  16.   //si esta todo OK muestro el mensaje
  17.  
  18.   echo "<script>";
  19.   echo "alert ('los datos fueron modificados');";
  20.   echo "window.location.replace('listado.php');";
  21.   echo "</script>";

Gracias por los aportes!

Etiquetas: formulario, mysql, mysqli, registro, registros, select, sql, update, variable
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 19:02.