| |||
| generar sql por medio de php hola amigos del foro tengo la siguiente situacion envio datos desde un formulario los checkbos los genero dinamicamente desde una base de datos , necesito enviar algunos o todos los checkbos y deacuerdo al numero de checkbox realizar una consulta
Código HTML:
Ver originalCopiar esta es la funcion con la cual recibo los datos
Código PHP:
Ver originalCopiar mi duda es la siguiente al recibir los datos con la funcion como hago para generar el sql dinamico public function get_vol_fec($db) { $fec_ini_actividad = $_REQUEST['fec_ini_actividad']; $vol_actividad1 = $_REQUEST['vol_actividad1']; $vol_actividad2 = $_REQUEST['vol_actividad2']; SELECT * FROM actividad,volcanes,fenomenos WHERE fec_ini_actividad=:fec_ini_actividad AND (vol_actividad=:vol_actividad1 OR vol_actividad=:vol_actividad2 OR vol_actividad=:vol_actividad3 OR vol_actividad=:vol_actividad4 OR vol_actividad=:vol_actividad5)AND(actividad.vol_ac tividad=:vol_actividad1 AND volcanes.cod_volcan=:vol_actividad1 OR actividad.vol_actividad=:vol_actividad2 AND volcanes.cod_volcan=:vol_actividad2 OR actividad.vol_actividad=:vol_actividad3 AND volcanes.cod_volcan=:vol_actividad3 si es uno como genero el slq para uno SELECT * FROM actividad,volcanes,fenomenos WHERE fec_ini_actividad=:fec_ini_actividad AND (vol_actividad=:vol_actividad1 o si es dos SELECT * FROM actividad,volcanes,fenomenos WHERE fec_ini_actividad=:fec_ini_actividad AND (vol_actividad=:vol_actividad1 OR vol_actividad=:vol_actividad2 OR vol_actividad=:vol_actividad3 OR vol_actividad=:vol_actividad4 OR vol_actividad=:vol_actividad5)AND(actividad.vol_ac tividad=:vol_actividad1 AND volcanes.cod_volcan=:vol_actividad1 OR actividad.vol_actividad=:vol_actividad2 AND volcanes.cod_volcan=:vol_actividad2 |
| |||
| Respuesta: generar sql por medio de php repara2 gracias por responder este es lo que me llega del formulario Array ( [fec_ini_actividad] => [volcan_1] => [volcan_2] => [volcan_3] => [volcan_4] => [volcan_5] => [volcan_6] => [volcan_10] => [Submit] => Consultar ) estoy realizando el sistema para que sea dinamico osea que en el futuro puede llegar volcan_10,volcan_11,volcan_12,volcan_13......volca n_100 necesito crear una consulta sql dinamica a partir de esos valor explicame un poco por favor |
| |||
| Respuesta: generar sql por medio de php Yo veo una solución definiendo la consulta con variables, Esto es en lugar de esto: SELECT * FROM actividad,volcanes,fenomenos WHERE fec_ini_actividad=:fec_ini_actividad AND (vol_actividad=:vol_actividad1 OR vol_actividad=:vol_actividad2 OR vol_actividad=:vol_actividad3 OR vol_actividad=:vol_actividad4 OR vol_actividad=:vol_actividad5)AND(actividad.vol_ac tividad=:vol_actividad1 AND volcanes.cod_volcan=:vol_actividad1 OR actividad.vol_actividad=:vol_actividad2 AND volcanes.cod_volcan=:vol_actividad2 pones esto: $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$volcanes; (puede que tengas que meter unas comillas simples al inicio o al final, pero creo que así está bien) Así conseguimos que la consulta "siempre se haga de la misma manera" y ya no tendremos que cambiarla. Antes inicializamos $tablas = "actividad,volcanes,fenomenos"; $inicio = "fec_ini_actividad=:fec_ini_actividad"; Y el rollo llega para volcanes: Primero miras cuantos volcanes te pasa: $nvolcanes Hace un for o un while con un contador (i) donde: $volcanes += "vol_actividad=".$vol_actividad1; if (i!= $nvolcanes){$volcanes += " OR ";} Yo probaría con eso. El hecho de declarar la consulta con variables te permite cambiar la consulta dinamicamente, otra cosa es que consigas los cambios dinámicos satisfactorios. Otra cosa, no entiendo porqué repites tantas condiciones: WHERE fec_ini_actividad=:fec_ini_actividad AND (vol_actividad=:vol_actividad1 OR vol_actividad=:vol_actividad2 OR vol_actividad=:vol_actividad3 OR vol_actividad=:vol_actividad4 OR vol_actividad=:vol_actividad5)AND(actividad.vol_ac tividad=:vol_actividad1 AND volcanes.cod_volcan=:vol_actividad1 OR actividad.vol_actividad=:vol_actividad2 AND volcanes.cod_volcan=:vol_actividad2 Si son campos de diferentes tablas y siempre usas esos criterios cambia la consulta: WHERE ".$inicio." AND ".$volcanes. " AND ".$actividad. " AND ".$codigo;
__________________ Si quieres conseguir resultados diferentes no hagas siempre lo mismo. |
| |||
| Respuesta: generar sql por medio de php Hola caperutxa gracias por responder mis conocimientos son basicos en php pero tengo muchas ganas de aprender , queria saber si estoy haciendo las cosas , espero me corrigas gracias tomando lo que me dices de definir la consulta con variables $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." $tablas = "actividad,volcanes,fenomenos"; $inicio = "fec_ini_actividad=:fec_ini_actividad"; lo implemente de la siguiente manera estoy bien? primero quiero implementarla sin el numero de volcanes otra cosa que no tengo clara es la siguiente $fec_ini_actividad = $_REQUEST['fec_ini_actividad']; esta fecha la recibo con $_REQUEST que significa lo que me aconsejas
Código PHP:
Ver originalCopiar dime si estoy equivocado o no $inicio=fec_ini_actividad es igual a un parametro por referencia osea ques es el $fec_ini_actividad = $_REQUEST['fec_ini_actividad']; esta fecha la recibo con $_REQUEST
Código PHP:
Ver originalCopiar |
| |||
| Respuesta: generar sql por medio de php Modifique la funcion pero no logro realizar la consulta que estoy haciendo mal?
Código PHP:
Ver originalCopiar |
| |||
| Respuesta: generar sql por medio de php hola amigos del foro realice la funcion como me indica caperutxa definiendo la consulta con variables realize una consulta de prueba este codigo me funciona bien
Código PHP:
Ver originalCopiar del formulario recibo
Código PHP:
Ver originalCopiar ya se que numero de volcanes son los que me envian ahora necesito realizar la consulta ,por el moneto solo necesito comparar dos volcanes pero debe funcionar para los 7 o n me podrian indicar como realizo la consulta dinamica |
| |||
| Respuesta: generar sql por medio de php hola amigos del foro necesito realizar un consulta sql dimanica la voy a realizar deacuerdo a lo que me dijo caperutxa definir la consulta con variables ya tengo el numero de volcanes pero no se como implementar el for para realizar la consulta espero me den una mano
Código PHP:
Ver originalCopiar |
| |||
| Respuesta: generar sql por medio de php Prueba: $ver = $db->prepare($seleccionar); La variable seleccionar ya lleva la cadena de consulta dentro. PD: Hemos escrito el último mensaje a la vez. En este último veo que usas volcanes pero no tienes iniciada la variable, esto te generará un error.
__________________ Si quieres conseguir resultados diferentes no hagas siempre lo mismo. Última edición por caperutxa; 05/02/2012 a las 14:57 |
| |||
| Respuesta: generar sql por medio de php hola amigos recibo los siguientes datos
Código PHP:
Ver originalCopiar con la siguiente funcion necesito hacer la consulta dinamica necesito ayuda con el for
Código PHP:
Ver originalCopiar |
| ||||
| Respuesta: generar sql por medio de php Seria mejor con foreach que con un for....
Código PHP:
Ver originalCopiar Eh puesto un echo $sql para ver que es lo que arroja y ver si es lo que necesitas...
__________________ Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!! -- Sheldon Cooper http://twitter.com/nemutagk PD: No contestaré temas vía mensaje personal =) Última edición por Nemutagk; 05/02/2012 a las 20:53 |
| |||
| Respuesta: generar sql por medio de php hola amigos del foro estos son los datos que recibo post de un formulario
Código PHP:
Ver originalCopiar y esta es la estructura de la tabla a cual necesito consultar con los datos que recibo
Código SQL:
Ver originalCopiar y esta es la funcion con la cual voy a realizar la consulta
Código PHP:
Ver originalCopiar la consulta se requiere que la fecha no es obligatoria y para n numero de volcanes hasta el momento solo la puedo realizar para un solo volcan. |
| |||
| Respuesta: generar sql por medio de php gracias a la ayuda de Nemutagk se logro la solicion
Código PHP:
Ver originalCopiar ahora el problema lo tengo en la consulta como haga para consultar que la fecha sea cualquiera y para cualquier volcan |
| |||
| Respuesta: generar sql por medio de php SELECT * FROM actividad,volcanes
Código SQL:
Ver originalCopiar |
| |||
| Respuesta: generar sql por medio de php para una fecha conocida y para un volcan SELECT * FROM actividad,volcanes WHERE actividad.fec_ini_actividad='2012-02-05' AND actividad.vol_actividad=1 AND volcanes.cod_volcan=1 necesito la consulta para cualquier fecha y para uno o varios volcanes |