how to insert the value of a select into multiple columns of a table in MYSQL PHP

0

good day, I hope you can support me with this query, How can I insert the value of a select (combobox) php in multiple columns in a table in mysql depending on the selected data? .

For example I have this form linked to nested combobox with data obtained from a table, the last select contains 3 values: peras, manzanas,naranjas . how do I make it so that if I select oranges I save the value in the column id_naranjas , if I select peras in the column id_peras and so on and then add the number of records of each column per person.

For example, if Juan Pérez selected the apples today and the day of tomorrow, I can also add those records of the same participant id referring to the value selected in this case 2 manzanas.

Here is my functional code so far:

This is the database fruit table mysql

id |id_ciudad |id_colonia |id_participante |id_fruta

I would like something like this:

id |id_ciudad |id_colonia |id_participante |id_peras |id_manzanas |id_naranjas

index.php

<div class="container">

<h1>
Seleccionar Participante
</h1>

<form id="frm-Participante" action="procesar.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id_jugador"  />

<?php
//Include database configuration file

//Get all country data
$query = $db->query("SELECT * FROM ciudades ORDER BY nombre_ciudad ASC");

//Count total number of rows
$rowCount = $query->num_rows;
?>

<div class="form-group">
    <label>Ciudad</label>
<select name="id_ciudad" id="Ciudad" class="form-control" >
    <option value="">Seleccione la Ciudad</option>
    <?php
    if($rowCount > 0){
        while($row = $query->fetch_assoc()){ 
            echo '<option value="'.$row['id_ciudad'].'">'.$row['nombre_ciudad'].'</option>';
        }
    }else{
        echo '<option value="">no hay ciudades</option>';
    }
    ?>
</select>
</div>

<div class="form-group">
    <label>Colonia</label>
<select name="id_colonia" id="Colonia" class="form-control" disabled="disabled">
    <option value="">Seleccione la Colonia</option>
</select>
</div>

<div class="form-group">
    <label>Participante</label>
<select name="id_participante" id="Participante" class="form-control" disabled="disabled">
    <option value="">Seleccione el Participante</option>
</select>
</div>

<div class="form-group">
    <label>Eleccion del Participante</label>
    <select name="id_fruta" id="Fruta" class="form-control" disabled="disabled">
        <option  value="1">Peras</option>
        <option  value="2">Manzanas</option>
        <option  value="3">Naranjas</option>
    </select>
</div>

<div class="upload-result text-center">
    <button class="btn btn-success">Guardar</button>
</div>

</form>
</div>



</body>
<script>
$(document).ready(function(){
    $("#frm-Participante").submit(function(){
        return $(this).validate();
    });
});

    </script>
<script>


$('#Ciudad').change(function(){
$('#Colonia').removeAttr('disabled');
});

$('#Colonia').change(function(){
$('#Participante').removeAttr('disabled');
});

$('#Participante').change(function(){
$('#Fruta').removeAttr('disabled');
});

$(document).ready(function(){
    $("#frm-Participante").submit(function(){
        return $(this).validate();
    });
});

    </script>
<script type="text/javascript">
$(document).ready(function(){
$('#Ciudad').on('change',function(){
    var CiudadID = $(this).val();
    if(CiudadID){
        $.ajax({
            type:'POST',
            url:'ajaxData.php',
            data:'id_categoria='+CiudadID,
            success:function(html){
                $('#Colonia').html(html);
                $('#Participante').html('<option value="">Seleccione el Colonia primero</option>')
                $('#Participante').attr('disabled','disabled');
                $('#Fruta').attr('disabled','disabled');
            }
        }); 
    }else{
        $('#Colonia').html('<option value="">Seleccione Ciudad primero</option>');
        $('#Participante').html('<option value="">Seleccione Colonia primero</option>');
        $('#Colonia').attr('disabled','disabled');
        $('#Participante').attr('disabled','disabled');
        $('#Fruta').attr('disabled','disabled');

    }
});

$('#Colonia').on('change',function(){
    var ColoniaID = $(this).val();
    if(ColoniaID){
        $.ajax({
            type:'POST',
            url:'ajaxData.php',
            data:'id_colonia='+ColoniaID,
            success:function(html){
                $('#Participante').html(html);
            }
        }); 
    }else{
        $('#Colonia').html('<option value="">Seleccione Colonia primero</option>');
        $('#Participante').attr('disabled','disabled');
        $('#Fruta').attr('disabled','disabled'); 
    }
});
});
</script>

proces.php

<?php    
require_once'conexion.php';
include'funciones.php';

bd_agregar($_REQUEST);

//Cerramos conexión.
$cone->close();     
?>

</body>

</html>

funcional.php

<?php
require_once'conexion.php';

//Creamos función
function bd_agregar($temp){
//Especificamos variable global.
global $cone;

//Obtenemos datos formulario
$id_ciudad = $_REQUEST['id_ciudad'];
$id_colonia = $_REQUEST['id_colonia'];
$id_participante = $_REQUEST['id_participante'];
$id_fruta = $_REQUEST['id_fruta'];

//Insertamos datos
$cone->query("INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_fruta) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')");         
  echo $id_ciudad.$id_colonia.$id_jugador.$id_fruta;
}

//Comprobamos ejecución sentencia.
if ($cone===false) {
printf("Mensaje de error: %s\n", $cone->error);
} else {
echo "Los datos se insertaron correctamente";
}
?>

sql

CREATE TABLE IF NOT EXISTS 'frutas' (
'id' int(20) NOT NULL AUTO_INCREMENT,
'id_ciudad' varchar(50) NOT NULL,
'id_colonia' varchar(50) NOT NULL,
'id_participante' varchar(50) NOT NULL,
'id_peras' varchar(30) NOT NULL,
'id_manzanas' varchar(30) NOT NULL,
'id_naranjas' varchar(30) NOT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;

Thank you in advance for your time and support.

    
asked by Alfredo Mondragón 14.05.2018 в 17:41
source

1 answer

1

You can add a Switch or IF conditional to validate the value obtained before inserting it into the database.

But first you should have the columns created in your table with NOT NULL.

Example:

Index.php with string and non-numeric values

<div class="form-group">
    <label>Eleccion del Participante</label>
    <select name="id_fruta" id="Fruta" class="form-control" disabled="disabled">
        <option  value="peras">Peras</option>
        <option  value="manzanas">Manzanas</option>
        <option  value="naranjas">Naranjas</option>
    </select>
</div>

functions.php

$id_fruta = $_REQUEST['id_fruta'];

swtich( $id_fruta ) {

    case 'peras':
        // Creas una variable que guarde la consulta con el nombre de columna id_peras
        $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_peras) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
        break;
    case 'manzanas':
        // Creas una variable que guarde la consulta con el nombre de columna id_manzanas
        $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_manzanas) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
        break;
    case 'naranjas':
        // Creas una variable que guarde la consulta con el nombre de columna id_naranjas
        $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_naranjas) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
        break;
    default:
        echo "Valor erróneo"; die;

}

// Pasamos la varriable $sql
$cone->query( $sql );         
  echo $id_ciudad.$id_colonia.$id_jugador.$id_fruta;
}

And this is another way a little easier but it may not be as secure but you can use it

When obtaining the variable, place it directly in the query variable $sql along with the text id_{$id_frutas} .

Example:

$id_fruta = $_REQUEST['id_fruta'];

$sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_{$id_fruta}) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";

// Pasamos la varriable $sql
$cone->query( $sql );         
  echo $id_ciudad.$id_colonia.$id_jugador.$id_fruta;
}
    
answered by 14.05.2018 в 18:18