Foros del Web » Programando para Internet » PHP »

error en consulta desde php

Estas en el tema de error en consulta desde php en el foro de PHP en Foros del Web. Buenas tardes! Espero me puedan ayudar con esta duda: quisiera insertar datos a una tabla en mysql desde php, pero en mi consulta ocupo variables ...
  #1 (permalink)  
Antiguo 29/10/2014, 13:42
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
error en consulta desde php

Buenas tardes! Espero me puedan ayudar con esta duda:

quisiera insertar datos a una tabla en mysql desde php, pero en mi consulta ocupo variables para definir mis campos, por ejemplo:

$consulta=mysql_query("INSERT INTO tabla ('{$_POST['campodetexto1']}', '{$_POST['campodetexto2']}', '{$_POST['campodetexto3']}') VALUES ('{$_POST['valor1']}', '{$_POST['valor2']}', '{$_POST['valor3']}')", $conexion);

Ocupo variables en lugar de los nombres de las columnas ya que segun lo que se haya seleccionado en el campo select es a donde se enviara la informacion, el problema es si alguno de los campos queda vacio, alguien sabe como puedo omitir ese detalle y que unicamente me llene las columnas que han sido seleccionadas????

De antemano muchas gracias!!!!

Última edición por petezajot; 29/10/2014 a las 17:33 Razón: error
  #2 (permalink)  
Antiguo 29/10/2014, 20:05
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: error en consulta desde php

Usa Highlight para tu codigo

Código PHP:
if($_POST['campodetexto1']!=""){
$columnas[]=$_POST['campodetexto1'];
$valores[]="'".{$_POST['valor1']."'";
}
if(
$_POST['campodetexto2']!=""){
$columnas[]=$_POST['campodetexto2'];
$valores[]="'".{$_POST['valor2']."'";
}
if(
$_POST['campodetexto3']!=""){
$columnas[]=$_POST['campodetexto3'];
$valores[]="'".{$_POST['valor3']."'";
}


$consulta=mysql_query("INSERT INTO tabla (".implode(',',$columnas).") VALUES (".implode(',',$valores).")"$conexion); 
  #3 (permalink)  
Antiguo 30/10/2014, 11:14
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: error en consulta desde php

Muchas gracias! Funciona muy bien, aunque me queda otra duda: en caso de que en una opcion select se eliga el mismo campo que anteriormente se había elegido, cómo hago para que lo inserte en la siguiente fila de la misma columna??
  #4 (permalink)  
Antiguo 30/10/2014, 11:26
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: error en consulta desde php

expresate un poco mas detallado que no te entiendo
  #5 (permalink)  
Antiguo 30/10/2014, 12:00
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: error en consulta desde php

Que por ejemplo el usuario seleccione dos campos con el mismo valor para la columna, me acepta valores repetidos?
  #6 (permalink)  
Antiguo 30/10/2014, 13:09
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: error en consulta desde php

Perdon pero igual no ten entiendo
  #7 (permalink)  
Antiguo 30/10/2014, 13:49
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: error en consulta desde php

Espero ser más explicito con código:

teniendo el código que me hiciste el favor de proporcionarme:

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);

el valor de mi variable "campodetexto1" proviene de un campo select con 5 opciones, digamos:
Código HTML:
Ver original
  1. <option value="opc a">opc a</option>
  2. <option value="opc b">opc b</option>
  3. <option value="opc c">opc c</option>
  4. <option value="opc d">opc d</option>
  5. <option value="opc e">opc e</option>

pero el valor de mi variable "campodetexto2" proviene de otro select con las mismas opciones, en caso de que en ambos select eliga "opc b", me manda un error, que me indica que estoy enviando el mismo campo 2 veces, me dice:

Column 'opc b' specified twice

como puedo evitar ese error?
Muchas gracias tambien por el tip de highlight!!!

Etiquetas: fecha, formulario, mysql, select, sql
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 00:20.