Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] condicionar 3 insert

Estas en el tema de condicionar 3 insert en el foro de PHP en Foros del Web. Hola a todos ojala me puedan ayudar con esto tengo 1 form con tres secciones cada seccion tiene un select y abajo unos input... intento ...
  #1 (permalink)  
Antiguo 13/03/2014, 14:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
condicionar 3 insert

Hola a todos ojala me puedan ayudar con esto tengo 1 form con tres secciones
cada seccion tiene un select y abajo unos input...
intento hacer lo siguiente necesito que si en el select primero se elige un dato me realize la consulta $insertSQL1
pero no me tome $insertSQL2 y $insertSQL3...

si eleijo solo en la dos solo me ejecute $insertSQL2
si elijo solo en el tres me ejecute $insertSQL3
si elijo en las 3 me haga $insertSQL1,$insertSQL2 y $insertSQL3

estoy tratando con algo asi pero me arrojo esto Query was empty
Código PHP:
<?php
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    
if(isset(
$_POST['primero']) && !empty($_POST['primero'])) {

  
$insertSQL1 sprintf("INSERT INTO tabla(...) VALUES (...)",    
                        ...);
                       
                        } 
//fin 1
                        
if(isset($_POST['segundo']) && !empty($_POST['segundo'])) {
 
$insertSQL2 sprintf("INSERT INTO tabla(...) VALUES (...)",    
                        } 
//fin 2
                       
if(isset($_POST['tercero']) && !empty($_POST['tercero'])) {
    
$insertSQL 3sprintf("INSERT INTO tabla(...) VALUES (...)",    
 } 
//fin 3
  
mysql_select_db($database_connection$connection);
  
$Result1 mysql_query($insertSQL1$connection) or die(mysql_error());
   
$Result2 mysql_query($insertSQL2$connection) or die(mysql_error());
   
$Result3 mysql_query($insertSQL3$connection) or die(mysql_error());

  
$insertGoTo "index.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?>
  #2 (permalink)  
Antiguo 13/03/2014, 15:45
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: condicionar 3 insert

En mi caso lo he hecho así:

Código HTML:
<select name="select">
    <option value="1">Select 1</option>
    <option value="2">Select 2</option>
    <option value="3">Select 3</option>
</select>
<input type="text" name="input1" value="" > 

Código PHP:
$option $_POST['select'];

switch(
$option){

    case (
1): $sqlInsert1 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
    break;  

    case (
2): $sqlInsert2 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
    break;  

    case (
3): $sqlInsert3 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
    break;  

    default:
        
        
$sqlInsert1 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
        
$sqlInsert2 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
        
$sqlInsert3 mysqli_query($connect"INSERT INTO tabla(...) VALUES (...)"MYSQL_USE_RESULT);
    break:

¿a eso te refieres?

Ahora, corríjanme si me equivoco pero en la sentencia:

Código PHP:
$Result1 mysql_query($insertSQL1$connection) or die(mysql_error()); 
$insertSQL1 siempre está vacío, ya que en el único lugar donde obtiene su valor esta condicionado por un if, el cuál si no se cumple nunca entra.

Saludos!!
  #3 (permalink)  
Antiguo 13/03/2014, 17:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: condicionar 3 insert

Gracias amigo pero me salio el mismo error

tengo esto

Código PHP:
<?php require_once('Connections/connection.php');
$option $_POST['select']; 
$s1$_POST['select1']; 
$s2 $_POST['select2']; 
$s3 $_POST['select3']; 
$c1 $_POST['caja1']; 
$c2$_POST['caja2']; 
$c3$_POST['caja3']; 

switch(
$option){ 

    case (
'select1'): $insertSQL = ("INSERT INTO probando(eleccion,texto) VALUES ($s1,$c1)"); 
    break;   

    case (
'select2'): $insertSQL2 = ( "INSERT INTO probando(eleccion,texto) VALUES ($s2,$c2)"); 
    break;   

    case (
'select3'): $insertSQL3 = ( "INSERT INTO probando(eleccion,texto) VALUES ($s3,$c3)"); 
    break;   

    default: 
         
        
mysql_select_db($database_connection$connection);
  
$Result1 mysql_query($insertSQL$connection) or die(mysql_error());
   
$Result2 mysql_query($insertSQL2$connection) or die(mysql_error());
   
$Result3 mysql_query($insertSQL3$connection) or die(mysql_error());

    break;
}  
?>
  #4 (permalink)  
Antiguo 13/03/2014, 18:05
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: condicionar 3 insert

¿Qué error te muestra? A mi me funciona

y ya sea por switch o por if, ¿dónde está la consulta que llevan $insertSQL, $insertSQL2 y $insertSQL3?

Supongo que los case con los select1, select2 y select3 te funcionan, en donde está el problema es en el default.

Sí es así, es porque los $insertSQL, no están haciendo referencia a ninguna consulta o al menos eso veo.

Voy de salida, pero creo que así te debe funcionar, sino más tarde entro ^^

Saludos!!
  #5 (permalink)  
Antiguo 13/03/2014, 18:17
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: condicionar 3 insert

Cita:
Iniciado por Middrel Ver Mensaje
¿Qué error te muestra? A mi me funciona

y ya sea por switch o por if, ¿dónde está la consulta que llevan $insertSQL, $insertSQL2 y $insertSQL3?

Supongo que los case con los select1, select2 y select3 te funcionan, en donde está el problema es en el default.

Sí es así, es porque los $insertSQL, no están haciendo referencia a ninguna consulta o al menos eso veo.

Voy de salida, pero creo que así te debe funcionar, sino más tarde entro ^^

Saludos!!
Gracias pero creo que es por que tu solo manejas un select yo tengo 3...
  #6 (permalink)  
Antiguo 13/03/2014, 18:38
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: condicionar 3 insert

comento que me a quedado con mi primer codigo lo solucione asi por si a alguien le sirve

en cada if despues del insert agregue

$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());

segun correspondia y con esto a quedado :)
  #7 (permalink)  
Antiguo 13/03/2014, 18:39
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: condicionar 3 insert

Si tienes tres selects, y si tienes datos independientes para cada insert... ¿no es simplemente cosa de hacer tres ifs, uno para cada insert sin relación uno con otro?

Código PHP:
Ver original
  1. if($select1)
  2.    mysql_query("insert1");
  3. if($select2)
  4.    mysql_query("insert2");
  5. if($select3)
  6.    mysql_query("insert3");
  #8 (permalink)  
Antiguo 13/03/2014, 18:58
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: condicionar 3 insert

Que bien que ya te funcionó :)

Me confundí entonces, pensé que el proceso se hacía de acuerdo a las opciones de un select

Saludos!!

Etiquetas: condicionar, insert, mysql, select, sql, tabla
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 11:05.