Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/10/2014, 11:05
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: consulta php con columnas variables

Para empezar lo que haces es totalmente inseguro, NUNCA pongas algo que viene del navegador directamente en la consulta.

Lo que puedes hacer es algo así:

Código PHP:
Ver original
  1. <form method="post">
  2.     <select name="campodetexto[]">
  3.         <option value="1">opc a</option>
  4.         <option value="2">opc b</option>
  5.         <option value="3">opc c</option>
  6.         <option value="4">opc d</option>
  7.         <option value="5">opc e</option>
  8.     </select>
  9.     <input name="valor[]">
  10.    
  11.     <select name="campodetexto[]">
  12.         <option value="1">opc a</option>
  13.         <option value="2">opc b</option>
  14.         <option value="3">opc c</option>
  15.         <option value="4">opc d</option>
  16.         <option value="5">opc e</option>
  17.     </select>
  18.     <input name="valor[]">
  19.    
  20.     <select name="campodetexto[]">
  21.         <option value="1">opc a</option>
  22.         <option value="2">opc b</option>
  23.         <option value="3">opc c</option>
  24.         <option value="4">opc d</option>
  25.         <option value="5">opc e</option>
  26.     </select>
  27.     <input name="valor[]">
  28. </form>
  29.  
  30. <?php
  31.     $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_database');
  32.  
  33.     {
  34.         printf("Error de conexión: %s\n", mysqli_connect_error());
  35.         exit();
  36.     }
  37.  
  38.     $stmt = $mysqli->prepare("INSERT INTO tabla (opcion, valor) VALUES (?, ?);");
  39.     $stmt->bind_param('ss', $opcion, $valor);
  40.    
  41.     foreach($_POST["campodetexto"] as $nro => $opcion)
  42.     {
  43.         $valor $_POST["valor"][$nro];
  44.         $stmt->execute();        
  45.     }
  46.  
  47.     $stmt->close();
  48.     $mysqli->close();

Lo que tienes son filas variables no columnas variables.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios