如何将值插入到数据库表中,该表根据组合框中的选择添加到不同的列中

sxpgvts3  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(374)

您好,我希望您支持我的查询,如何根据所选数据在mysql的表中的多列中插入select option(combobox)php的值
例如,我有一个链接到嵌套组合框的提交表单,最后一个选择选项包含3个值: peras(pears), manzanas(apples), naranjas(oranges) 。如果选择值“pears”,则此值将插入到列id\u peras中,如果选择oranges,则此值将插入到列id\u naranjas中。这是我的代码直到现在:
这是我的mysql数据库表“frutas”

  1. id |id_ciudad |id_colonia |id_participante |id_fruta

我希望这张table看起来像这样:

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

索引.php

  1. <div class="container">
  2. <h1>
  3. Seleccionar Participante
  4. </h1>
  5. <form id="frm-Participante" action="procesar.php" method="post" enctype="multipart/form-data">
  6. <input type="hidden" name="id_jugador" />
  7. <?php
  8. //Include database configuration file
  9. //Get all country data
  10. $query = $db->query("SELECT * FROM ciudades ORDER BY nombre_ciudad ASC");
  11. //Count total number of rows
  12. $rowCount = $query->num_rows;
  13. ?>
  14. <div class="form-group">
  15. <label>Ciudad</label>
  16. <select name="id_ciudad" id="Ciudad" class="form-control" >
  17. <option value="">Seleccione la Ciudad</option>
  18. <?php
  19. if($rowCount > 0){
  20. while($row = $query->fetch_assoc()){
  21. echo '<option value="'.$row['id_ciudad'].'">'.$row['nombre_ciudad'].'</option>';
  22. }
  23. }else{
  24. echo '<option value="">no hay ciudades</option>';
  25. }
  26. ?>
  27. </select>
  28. </div>
  29. <div class="form-group">
  30. <label>Colonia</label>
  31. <select name="id_colonia" id="Colonia" class="form-control" disabled="disabled">
  32. <option value="">Seleccione la Colonia</option>
  33. </select>
  34. </div>
  35. <div class="form-group">
  36. <label>Participante</label>
  37. <select name="id_participante" id="Participante" class="form-control" disabled="disabled">
  38. <option value="">Seleccione el Participante</option>
  39. </select>
  40. </div>
  41. <div class="form-group">
  42. <label>Eleccion del Participante</label>
  43. <select name="id_fruta" id="Fruta" class="form-control" disabled="disabled">
  44. <option value="1">Peras</option>
  45. <option value="2">Manzanas</option>
  46. <option value="3">Naranjas</option>
  47. </select>
  48. </div>
  49. <div class="upload-result text-center">
  50. <button class="btn btn-success">Guardar</button>
  51. </div>
  52. </form>
  53. </div>
  54. </body>
  55. <script>
  56. $(document).ready(function(){
  57. $("#frm-Participante").submit(function(){
  58. return $(this).validate();
  59. });
  60. });
  61. </script>
  62. <script>
  63. $('#Ciudad').change(function(){
  64. $('#Colonia').removeAttr('disabled');
  65. });
  66. $('#Colonia').change(function(){
  67. $('#Participante').removeAttr('disabled');
  68. });
  69. $('#Participante').change(function(){
  70. $('#Fruta').removeAttr('disabled');
  71. });
  72. $(document).ready(function(){
  73. $("#frm-Participante").submit(function(){
  74. return $(this).validate();
  75. });
  76. });
  77. </script>
  78. <script type="text/javascript">
  79. $(document).ready(function(){
  80. $('#Ciudad').on('change',function(){
  81. var CiudadID = $(this).val();
  82. if(CiudadID){
  83. $.ajax({
  84. type:'POST',
  85. url:'ajaxData.php',
  86. data:'id_categoria='+CiudadID,
  87. success:function(html){
  88. $('#Colonia').html(html);
  89. $('#Participante').html('<option value="">Seleccione el Colonia primero</option>')
  90. $('#Participante').attr('disabled','disabled');
  91. $('#Fruta').attr('disabled','disabled');
  92. }
  93. });
  94. }else{
  95. $('#Colonia').html('<option value="">Seleccione Ciudad primero</option>');
  96. $('#Participante').html('<option value="">Seleccione Colonia primero</option>');
  97. $('#Colonia').attr('disabled','disabled');
  98. $('#Participante').attr('disabled','disabled');
  99. $('#Fruta').attr('disabled','disabled');
  100. }
  101. });
  102. $('#Colonia').on('change',function(){
  103. var ColoniaID = $(this).val();
  104. if(ColoniaID){
  105. $.ajax({
  106. type:'POST',
  107. url:'ajaxData.php',
  108. data:'id_colonia='+ColoniaID,
  109. success:function(html){
  110. $('#Participante').html(html);
  111. }
  112. });
  113. }else{
  114. $('#Colonia').html('<option value="">Seleccione Colonia primero</option>');
  115. $('#Participante').attr('disabled','disabled');
  116. $('#Fruta').attr('disabled','disabled');
  117. }
  118. });
  119. });
  120. </script>

程序.php

  1. <?php
  2. require_once'conexion.php';
  3. include'funciones.php';
  4. bd_agregar($_REQUEST);
  5. //Cerramos conexión.
  6. $cone->close();
  7. ?>
  8. </body>
  9. </html>

函数.php

  1. <?php
  2. require_once'conexion.php';
  3. //Creamos función
  4. function bd_agregar($temp){
  5. //Especificamos variable global.
  6. global $cone;
  7. //Obtenemos datos formulario
  8. $id_ciudad = $_REQUEST['id_ciudad'];
  9. $id_colonia = $_REQUEST['id_colonia'];
  10. $id_participante = $_REQUEST['id_participante'];
  11. $id_fruta = $_REQUEST['id_fruta'];
  12. //Insertamos datos
  13. $cone->query("INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_fruta) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')");
  14. echo $id_ciudad.$id_colonia.$id_jugador.$id_fruta;
  15. }
  16. //Comprobamos ejecución sentencia.
  17. if ($cone===false) {
  18. printf("Mensaje de error: %s\n", $cone->error);
  19. } else {
  20. echo "Los datos se insertaron correctamente";
  21. }
  22. ?>

sql语句

  1. CREATE TABLE IF NOT EXISTS `frutas` (
  2. `id` int(20) NOT NULL AUTO_INCREMENT,
  3. `id_ciudad` varchar(50) NOT NULL,
  4. `id_colonia` varchar(50) NOT NULL,
  5. `id_participante` varchar(50) NOT NULL,
  6. `id_peras` varchar(30) NOT NULL,
  7. `id_manzanas` varchar(30) NOT NULL,
  8. `id_naranjas` varchar(30) NOT NULL,
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  11. COMMIT;

我试过用开关箱,但没有´数据未插入数据库

  1. function bd_agregar($temp){
  2. //Especificamos variable global.
  3. global $cone;
  4. //Obtenemos datos formulario
  5. $id_ciudad = $_REQUEST['id_ciudad'];
  6. $id_colonia = $_REQUEST['id_colonia'];
  7. $id_participante = $_REQUEST['id_participante'];
  8. $id_fruta = $_REQUEST['id_fruta'];
  9. switch($id_fruta) {
  10. case '1':
  11. // Creas una variable que guarde la consulta con el nombre de columna id_peras
  12. $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_gol) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
  13. break;
  14. case '2':
  15. // Creas una variable que guarde la consulta con el nombre de columna id_manzanas
  16. $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_amarilla) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
  17. break;
  18. case '3':
  19. // Creas una variable que guarde la consulta con el nombre de columna id_naranjas
  20. $sql = "INSERT INTO frutas (id_ciudad,id_colonia,id_participante,id_roja) VALUES ('$id_ciudad','$id_colonia','$id_participante','$id_fruta')";
  21. break;
  22. default:
  23. echo "Valor erróneo"; die;
  24. }
  25. //Insertamos datos
  26. // Pasamos la varriable $sql
  27. $cone->query($sql);
  28. echo $id_ciudad.$id_colonia.$id_participante.$id_fruta;
  29. }

先谢谢你

xurqigkl

xurqigkl1#

首先,我建议您更改数据库设计。您可以使用enum('1','2','3'),而不是为selectbox的每种情况使用3个不同的列。然后您可以简单地将所选框的值插入到该列中。稍后,对于前端,您只需为每个值输出一个不同的字符串。也可以将字符串而不是数字添加到枚举中。

相关问题