Problem to update record with combobox?

1

I am updating a column of the database using <select> option but when executing the code it does not update the column. I'm using MySQL.

Prueba1.php

<html>
    <head></head>
    <body>
        <form method="POST" action="Prueba2.php">
            <input type="hidden" name="servicio_No" value="<?php echo                $servicio_No ?>" />

            <input type="text" name="servicio_No" value="" placeholder="Ingrese el numero del servicio">

            <label>Situacion: </label>
            <select name="situacion" id="situacion">
                <option value="Finalizado">Finalizado</option>
                <option value="Fallido">Fallido</option>
                <option value="Cancelado">Cancelado</option>
                <option value="Programado">Programado</option>
                <option value="Realizando">Realizando</option>
            </select>

            <input type="submit" name="Update" value="Update" placeholder="">
       </form>    
    </body>
</html>

Test2.php

<?php
    $conexion =  mysqli_connect("localhost", "root", "admin123", "database");

    $servicio_No = $_POST["servicio_No"];
    $situacion = mysqli_real_escape_string($conexion, $_POST['situacion']);

    $update_query = "UPDATE servicio SET servicio_No = '". $_POST['servicio_No'] ."' WHERE situacion = '". $_POST['situacion']."')" ;

    mysqli_query($conexion, $update_query); 

    mysqli_close($conexion);;
?>
    
asked by Cristian Antonio Trujillo Gris 12.06.2018 в 16:45
source

3 answers

2

You need to execute the query and you need a quote in the query

 $conexion =  mysqli_connect("localhost", "root", "admin123", "database");

$servicio_No = $_POST["servicio_No"];
$situacion = mysqli_real_escape_string($conexion, $_POST['situacion']);

$update_query = "UPDATE servicio SET servicio_No = '". $_POST['servicio_No'] ."' WHERE situacion = '". $_POST['situacion']."'" ;

mysqli_query($conexion, $update_query); /* Esto es lo que falta*/

mysqli_close($conexion);
    
answered by 12.06.2018 в 16:48
1

JDev has already given you the answer but if it still does not work, you have to make several validations, look

<?php
$conexion =  mysqli_connect("localhost", "root", "admin123", "database");

//Validar si la conexión es correcta
if (mysqli_connect_errno()){
  echo 'Falló la conexión a la base de datos';
}

else{
  //Validar si los parámetros enviados son correctos
  if( empty( $_POST["servicio_No"] ) || empty( $_POST['situacion'] ) ){
        echo 'Los parámetros están vacíos';
  }

  else{
      //Limpiar las variables
      $servicio = mysqli_real_escape_string($conexion, $_POST["servicio_No"]);
      $situacion = mysqli_real_escape_string($conexion, $_POST['situacion']);
      $query = "UPDATE servicio SET servicio_No = ". $servicio ." WHERE situacion = '". $situacion ."'";
      mysqli_query( $conexion, $query );
      //Validar que se haya hecho el UPDATE
      if( mysqli_affected_rows($conexion) <= 0){
        echo 'No fue posible crear la consulta, verifica: <br>' . $query;
      }

      else{
        echo 'Actualización exitosa';
      }
  }
}

mysqli_close($conexion);


?>
    
answered by 12.06.2018 в 17:02
0

Quotation problem,

$update_query = "UPDATE servicio SET servicio_No = '". $_POST['servicio_No'] ."' WHERE situacion = '". $_POST['situacion']."' " ;
    
answered by 12.06.2018 в 16:48