Hola, tengo un problema que me urge y lo he puesto de 5000 maneras y no hay forma de que quede como quiero.
Quiero realizar un INSERT a la base de datos pero hay varios valores que quiero que tengan condiciones propias para su inserción. Por lo tanto me gustaría ver si hay alguna forma de incorporar éste código:
Código 1
$result = ($telefono != ''); if ($result == true){ mysql_query("INSERT INTO Nombre_Tabla (Whatsapp) VALUES ('Si')",$conect); } else { die("<br>error:".mysql_error()); } $result = ($user != '' and $pw != '' and $nick != ''); if ($result == true){ mysql_query("INSERT INTO Nombre_Tabla (OPMYA) VALUES ('Si')",$conect); }else{ die("<br>error:".mysql_error()); } $result = ($user != '' and $pw != '' and $nick != ''); if ($result == true){ mysql_query("INSERT INTO Nombre_Tabla (Estado) VALUES ('1')",$conect); }else{ die("<br>error:".mysql_error()); } $result = ($fechanac != '' and $nombre != '' and $nick != '' and $procnakama != '' and $codigopais != '' and $telefono != '' and $email != '' and $user != '' and $pw != ''); if ($result == true) { mysql_query("INSERT INTO Nombre_Tabla (Participantes) VALUES ('Si')",$conect); } else { die("<br>error:".mysql_error()); }
Dentro de un único INSERT que ya tiene valores a incorporar y funciona perfectamente si lo mando así:
Código 2
$result = mysql_query("INSERT INTO Nombre_Tabla(Fecha_Reg,Fecha_Nac,Nombre_Completo,Nick_Alias,Procedencia,Cod_Pais,Telefono,G1,G2,G3,G4,G5,G6,G7,Email,IDusuario,Clave,Nuevo_Nakama,Notas_Nakama,Privilegios,Rango,IP_Publica) VALUES ('$fecha4','$fecha2','$nombre','$nick','$procnakama','$codigopais','$telefono','$grupo1','$grupo2','$grupo3','$grupo4','$grupo5','$grupo6','$grupo7','$email','$user','$pw','No','Bienvenido','No','Nakama','$ip');", $conect);
Pues eso mismo, incorporar los valores con sus condiciones del "Codigo 1" en el "Código 2" para que se apliquen todos al mismo INSERT y no me cree 5 INSERT distintos.
Gracias, espero que puedan ayudarme.
Respuestas
Lo que puedes hacer es ir guardando los valores que vas a insertar y luego construir la consulta SQL con todos esos valores. Algo así:
<?php $columns = array(); $values = array(); if ($telefono !== '') { $columns[] = 'Whatsapp'; $values[] = 'Si'; } if ($user !== '' and $pw !== '' and $nick !== '') { $columns[] = 'OPMYA'; $values[] = 'Si'; } // ... $columnsSql = implode(", ", $columns); $valuesSql = "'".implode(", '", $values)."'"; $sql = sprintf("INSERT INTO Nombre_Tabla(%s) VALUES (%s);", ); $result = mysql_query($sql, $conect);
@javiereguiluz