Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] consulta php con columnas variables

Estas en el tema de consulta php con columnas variables en el foro de PHP en Foros del Web. buen día! Tengo una duda, teniendo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original if ( $_POST [ 'campodetexto1' ] != "" ) { $columnas ...
  #1 (permalink)  
Antiguo 31/10/2014, 09:52
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 10 años
Puntos: 0
consulta php con columnas variables

buen día! Tengo una duda, teniendo este código:

Código PHP:
Ver original
  1. if($_POST['campodetexto1']!=""){
  2. $columnas[]=$_POST['campodetexto1'];
  3. $valores[]="'".{$_POST['valor1']."'";
  4. }
  5. if($_POST['campodetexto2']!=""){
  6. $columnas[]=$_POST['campodetexto2'];
  7. $valores[]="'".{$_POST['valor2']."'";
  8. }
  9. if($_POST['campodetexto3']!=""){
  10. $columnas[]=$_POST['campodetexto3'];
  11. $valores[]="'".{$_POST['valor3']."'";
  12. }
  13.  
  14.  
  15. $consulta=mysql_query("INSERT INTO tabla (".implode(',',$columnas).") VALUES (".implode(',',$valores).")", $conexion);

que me trae los valores de las columnas segun los siguientes campos select:

Código HTML:
Ver original
  1. <select id="campodetexto1">
  2.     <option value="opc a">opc a</option>
  3.     <option value="opc b">opc b</option>
  4.     <option value="opc c">opc c</option>
  5.     <option value="opc d">opc d</option>
  6.     <option value="opc e">opc e</option>
  7.     </select>
  8.     <select id="campodetexto2">
  9.     <option value="opc a">opc a</option>
  10.     <option value="opc b">opc b</option>
  11.     <option value="opc c">opc c</option>
  12.     <option value="opc d">opc d</option>
  13.     <option value="opc e">opc e</option>
  14.     </select>

en caso de que en ambos select eliga "opc b", obviamente indica que estoy enviando el mismo campo 2 veces, me dice:

Column 'opc b' specified twice

Cómo puedo hacer para que en ves de que marque error me envía el dato en la misma columna, pero en la siguiente fila????
de antemano, muchas gracias!!!
  #2 (permalink)  
Antiguo 31/10/2014, 10:56
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: consulta php con columnas variables

por no se envian los id por post
ponele el name a los select con el mismo id
  #3 (permalink)  
Antiguo 31/10/2014, 11:00
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 10 años
Puntos: 0
Respuesta: consulta php con columnas variables

No es por eso, por que si, efectivamente, los campos de opciones tienen el mismo nombre que el id, solo que aqui no lo manifeste en el código, en todo caso estan así: <select id="campodetexto1" name="campodetexto1" >
  #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
  #5 (permalink)  
Antiguo 31/10/2014, 11:05
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: consulta php con columnas variables

ok pero seguis sin entender, se envia solo el valor de name, no el nombre del campo

en todo caso:

Código PHP:
Ver original
  1. <?
  2. if(isset($_POST['campodetexto1'])  && !empty($_POST['campodetexto1'])){
  3. $columnas[]='campodetexto1';
  4. $valores[]=$_POST['campodetexto1'];
  5. }
  6. ?>
  #6 (permalink)  
Antiguo 31/10/2014, 11:36
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 10 años
Puntos: 0
Respuesta: consulta php con columnas variables

Lo que necesito: según lo que se haya elegido en el campo select es el campo a donde se mandara la información que se inserta despues, no puedo tener valores fijos para las columnas ya que es necesario que en algunos casos, el valor que se elige en el campo select se repita, saben como puedo llevar a cabo esa o esas consultas para aproximadamente 25 filas????
  #7 (permalink)  
Antiguo 31/10/2014, 11:45
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: consulta php con columnas variables

lo que queres hacer es algo fuera de lo bueno
  #8 (permalink)  
Antiguo 31/10/2014, 11:49
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 10 años
Puntos: 0
Respuesta: consulta php con columnas variables

Cita:
Iniciado por Patriarka Ver Mensaje
lo que queres hacer es algo fuera de lo bueno
Pero es posible?? o de plano mejor cambio la estructura de mi proyecto!
  #9 (permalink)  
Antiguo 31/10/2014, 12:06
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: consulta php con columnas variables

es posible pero esta MAL , no se de donde sacaste esa logica
mejor pensalo de una forma normal
  #10 (permalink)  
Antiguo 31/10/2014, 12:25
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 10 años
Puntos: 0
Respuesta: consulta php con columnas variables

Ok!, Mejor reestructuraré mi proyecto, además como dice NSD es inseguro! Muchas gracias!!!!
  #11 (permalink)  
Antiguo 31/10/2014, 18:06
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: consulta php con columnas variables

lo que dice es que no tenes que pasar como parametros campos o filtro de la query por formulario

Etiquetas: columnas, select, sql, tabla, variables
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 10:14.