Foros del Web » Programando para Internet » PHP »

generar sql por medio de php

Estas en el tema de generar sql por medio de php en el foro de PHP en Foros del Web. hola amigos del foro tengo la siguiente situacion envio datos desde un formulario los checkbos los genero dinamicamente desde una base de datos , necesito ...
  #1 (permalink)  
Antiguo 03/02/2012, 21:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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 original
  1. <form method="post"  action="index.php?controller=actividad_&accion=list_vol_fec">
  2.       <br />
  3.       <form>
  4. <input name="fec_ini_actividad" type="text" id="fec_ini_actividad" class="required campos_texto" />
  5. <br />
  6.  
  7.                  <?php
  8.                                     foreach($fv as $field)
  9.                                     {
  10.                                         echo "<input type='checkbox' name='chk' value='$field[cod_volcan]' id='volcan_$field[cod_volcan]' onclick='calcular(this,0);'>".$field['nom_volcan']."-".$field['cod_volcan']."<input type='text'id='text_$field[cod_volcan]' name='vol_actividad_$field[cod_volcan]'/>"."<br/>";
  11.                                        
  12.                                     }
  13.                                     ?>
  14.  
  15. <br/>
  16. Todos:
  17. <input type='checkbox' id='chk_todos' onclick="calcularTodos();" />
  18. <br/>
  19. <input type="submit" name="Submit" value="Consultar" class="botones"/>
  20. <br /><br />
  21. </form>


esta es la funcion con la cual recibo los datos

Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $vol_actividad1 = $_REQUEST['vol_actividad1'];
  5.             $vol_actividad2 = $_REQUEST['vol_actividad2'];
  6.             $vol_actividad3 = $_REQUEST['vol_actividad3'];
  7.             $vol_actividad4 = $_REQUEST['vol_actividad4'];
  8.             $vol_actividad5 = $_REQUEST['vol_actividad5'];
  9.                            
  10.             $ver = $db->prepare('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_actividad=: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 OR actividad.vol_actividad=:vol_actividad4 AND volcanes.cod_volcan=:vol_actividad4 OR actividad.vol_actividad=:vol_actividad5 AND volcanes.cod_volcan=:vol_actividad5)AND actividad.fen_actividad=fenomenos.cod_fenomeno');
  11.            
  12.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  13.             $ver->bindParam(':vol_actividad1', $vol_actividad1);
  14.             $ver->bindParam(':vol_actividad2', $vol_actividad2);
  15.             $ver->bindParam(':vol_actividad3', $vol_actividad3);
  16.             $ver->bindParam(':vol_actividad4', $vol_actividad4);
  17.             $ver->bindParam(':vol_actividad5', $vol_actividad5);
  18.        
  19.    
  20.             $ver->execute();
  21.             return $ver->fetchAll();
  22.         }

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
  #2 (permalink)  
Antiguo 04/02/2012, 04:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: generar sql por medio de php

Utiliza la función isset() para saber si una variable a sido inicializada. A partir de aquí generas la consulta con las variables existentes. También puedes guardar los valores de los checkbox en un array y luego utilizar explode(). Te recomiendo lo primero, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 04/02/2012, 14:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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
  #4 (permalink)  
Antiguo 04/02/2012, 16:39
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 9 meses
Puntos: 6
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.

Mejora tu entorno. MestralCadiz con su comunidad.
  #5 (permalink)  
Antiguo 04/02/2012, 21:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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 original
  1. $inicio = "fec_ini_actividad=:fec_ini_actividad";

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 original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $vol_actividad1 = $_REQUEST['vol_actividad1'];
  5.             $vol_actividad2 = $_REQUEST['vol_actividad2'];
  6.             $vol_actividad3 = $_REQUEST['vol_actividad3'];
  7.             $vol_actividad4 = $_REQUEST['vol_actividad4'];
  8.             $vol_actividad5 = $_REQUEST['vol_actividad5'];
  9.            
  10.             $tablas = "actividad,volcanes,fenomenos";
  11.                         $inicio = "fec_ini_actividad=:fec_ini_actividad";
  12.                            
  13.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio.";
  14.            
  15.            
  16.             $ver = $db->prepare('$seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$volcanes;');
  17.            
  18.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  19.             $ver->bindParam(':vol_actividad1', $vol_actividad1);
  20.             $ver->bindParam(':vol_actividad2', $vol_actividad2);
  21.             $ver->bindParam(':vol_actividad3', $vol_actividad3);
  22.             $ver->bindParam(':vol_actividad4', $vol_actividad4);
  23.             $ver->bindParam(':vol_actividad5', $vol_actividad5);
  24.        
  25.    
  26.             $ver->execute();
  27.             return $ver->fetchAll();
  28.         }
  #6 (permalink)  
Antiguo 04/02/2012, 21:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: generar sql por medio de php

Modifique la funcion pero no logro realizar la consulta

que estoy haciendo mal?

Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.            
  5.             $tablas = "actividad";
  6.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  7.                            
  8.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio;
  9.            
  10.            
  11.             $ver = $db->prepare('$seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio.";');
  12.            
  13.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  14.        
  15.    
  16.             $ver->execute();
  17.             return $ver->fetchAll();
  18.         }
  #7 (permalink)  
Antiguo 04/02/2012, 22:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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 original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.            
  5.             $tablas = "actividad";
  6.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  7.                            
  8.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio;
  9.            
  10.            
  11.             $ver = $db->prepare($seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio);
  12.            
  13.            
  14.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  15.        
  16.    
  17.             $ver->execute();
  18.             return $ver->fetchAll();
  19.         }


del formulario recibo

Código PHP:
Ver original
  1. (
  2.     [fec_ini_actividad] =>
  3.     [volcan_1] => 1
  4.     [volcan_2] =>
  5.     [volcan_3] =>
  6.     [volcan_4] =>
  7.     [volcan_5] =>
  8.     [volcan_6] =>
  9.     [volcan_11] => 11
  10.     [num_volcanes] => 7
  11.     [Submit] => Consultar
  12. )


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
  #8 (permalink)  
Antiguo 05/02/2012, 15:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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 original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $num_volcanes = $_REQUEST['num_volcanes'];
  5.            
  6.             $tablas = "actividad,volcanes,fenomenos";
  7.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  8.            
  9.             for ($i=1;$i<=$_REQUEST['num_volcanes'];$i++)
  10.                 {
  11.                
  12.            
  13.                 }
  14.            
  15.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$volcanes;
  16.                            
  17.        
  18.            
  19.            
  20.             $ver = $db->prepare($seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$volcanes);
  21.            
  22.            
  23.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  24.             $ver->bindParam(':num_volcanes', $num_volcanes);
  25.        
  26.    
  27.             $ver->execute();
  28.             return $ver->fetchAll();
  29.         }
  #9 (permalink)  
Antiguo 05/02/2012, 15:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 9 meses
Puntos: 6
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.

Mejora tu entorno. MestralCadiz con su comunidad.

Última edición por caperutxa; 05/02/2012 a las 15:57
  #10 (permalink)  
Antiguo 05/02/2012, 20:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: generar sql por medio de php

hola amigos


recibo los siguientes datos

Código PHP:
Ver original
  1. (
  2.     [fec_ini_actividad] => 2012-02-05
  3.     [volcan_1] => 1
  4.     [volcan_2] =>
  5.     [volcan_3] =>
  6.     [volcan_4] =>
  7.     [volcan_5] =>
  8.     [volcan_6] =>
  9.     [volcan_11] => 11
  10.     [num_volcanes] => 7
  11.     [Submit] => Consultar
  12. )

con la siguiente funcion necesito hacer la consulta dinamica

necesito ayuda con el for

Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $num_volcanes = $_REQUEST['num_volcanes'];
  5.            
  6.             $tablas = "actividad";
  7.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  8.            
  9.             for ($i=1;$i<=$_REQUEST['num_volcanes'];$i++)
  10.                 {
  11.                 }
  12.            
  13.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio;
  14.                            
  15.             $ver = $db->prepare($seleccionar);
  16.                        
  17.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  18.                
  19.             $ver->execute();
  20.             return $ver->fetchAll();
  21.         }
  #11 (permalink)  
Antiguo 05/02/2012, 21:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: generar sql por medio de php

Seria mejor con foreach que con un for....

Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $num_volcanes = $_REQUEST['num_volcanes'];
  5.            
  6.             $tablas = "actividad";
  7.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  8.             $sql = '';
  9.            
  10.             foreach($num_volcanes as $volcan => $valor) {
  11.                     if (!empty($valor)) {
  12.                            if (empty($sql)) {
  13.                                  $sql .= $volcan.'="'.$valor.'"';
  14.                            }else {
  15.                                  $sql .= ','.$volcan.'="'.$valor.'"';
  16.                            }
  17.                     }
  18.             }
  19.  
  20.              echo $sql;
  21.            
  22.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio;
  23.                            
  24.             $ver = $db->prepare($seleccionar);
  25.                        
  26.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  27.                
  28.             $ver->execute();
  29.             return $ver->fetchAll();
  30.         }

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 21:53
  #12 (permalink)  
Antiguo 06/02/2012, 08:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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 original
  1. (
  2.     [fec_ini_actividad] =>
  3.     [volcan_1] =>
  4.     [volcan_2] =>
  5.     [volcan_3] =>
  6.     [volcan_4] =>
  7.     [volcan_5] =>
  8.     [volcan_6] =>
  9.     [volcan_11] =>
  10.     [num_volcanes] => 7
  11.     [Submit] => Consultar
  12. )

y esta es la estructura de la tabla a cual necesito consultar con los datos que recibo

Código SQL:
Ver original
  1. CREATE TABLE actividad
  2. (
  3.   id_actividad serial NOT NULL,
  4.   fec_ini_actividad DATE,
  5.   fec_fin_actividad DATE,
  6.   hor_ini_actividad CHARACTER VARYING(30),
  7.   hor_fin_actividad CHARACTER VARYING(30),
  8.   fen_actividad INTEGER,
  9.   vol_actividad INTEGER,
  10.   ban_actividad CHARACTER VARYING(20),
  11.   nba_actividad INTEGER,
  12.   rep_actividad INTEGER,
  13.   obs_actividad text,
  14.   CONSTRAINT pk_actividad PRIMARY KEY (id_actividad)
  15. )

y esta es la funcion con la cual voy a realizar la consulta


Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $num_volcanes = $_REQUEST['num_volcanes'];
  5.                    
  6.             $tablas = "actividad,volcanes";
  7.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  8.                        
  9.             for ($i=1;$i<=$_REQUEST['num_volcanes'];$i++)
  10.                 {
  11.                
  12.                 }
  13.            
  14.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$volcanes;
  15.                            
  16.             $ver = $db->prepare($seleccionar);
  17.                        
  18.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  19.             $ver->bindParam(':vol_actividad', $vol_actividad);
  20.                
  21.             $ver->execute();
  22.             return $ver->fetchAll();
  23.         }

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.
  #13 (permalink)  
Antiguo 06/02/2012, 13:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: generar sql por medio de php

gracias a la ayuda de Nemutagk se logro la solicion

Código PHP:
Ver original
  1. public function get_vol_fec($db)
  2.         {
  3.             $fec_ini_actividad = $_REQUEST['fec_ini_actividad'];
  4.             $num_volcanes = $_REQUEST['num_volcanes'];
  5.                        
  6.                         $sql = '';
  7.                         foreach($_POST as $item => $valor) {
  8.                             if (strpos($item,'volcan_') !== false) {
  9.                                 $valor = empty($valor) ? 0 : $valor;
  10.                                 if (empty($sql)) {
  11.                                     $sql = 'actividad.vol_actividad='.$valor.' AND volcanes.cod_volcan='.$valor;
  12.                                 }else {
  13.                                         $sql .= ' OR actividad.vol_actividad='.$valor.' AND volcanes.cod_volcan='.$valor;
  14.                                 }
  15.                             }
  16.                         }
  17.                                    
  18.          echo $sql;    
  19.        
  20.  
  21.        
  22.             $tablas = "actividad,volcanes";
  23.             $inicio = "fec_ini_actividad=:fec_ini_actividad";
  24.                    
  25.            
  26.            
  27.             $seleccionar = "SELECT * FROM ".$tablas." WHERE ".$inicio." AND ".$sql;
  28.                            
  29.             $ver = $db->prepare($seleccionar);
  30.                        
  31.             $ver->bindParam(':fec_ini_actividad', $fec_ini_actividad);
  32.        
  33.                
  34.             $ver->execute();
  35.             return $ver->fetchAll();
  36.         }


ahora el problema lo tengo en la consulta

como haga para consultar
que la fecha sea cualquiera y para cualquier volcan
  #14 (permalink)  
Antiguo 06/02/2012, 13:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: generar sql por medio de php

SELECT * FROM actividad,volcanes
Código SQL:
Ver original
  1. CREATE TABLE actividad
  2. (
  3.   id_actividad serial NOT NULL,
  4.   fec_ini_actividad DATE,
  5.   fec_fin_actividad DATE,
  6.   hor_ini_actividad CHARACTER VARYING(30),
  7.   hor_fin_actividad CHARACTER VARYING(30),
  8.   fen_actividad INTEGER,
  9.   vol_actividad INTEGER,
  10.   ban_actividad CHARACTER VARYING(20),
  11.   nba_actividad INTEGER,
  12.   rep_actividad INTEGER,
  13.   obs_actividad text,
  14.   CONSTRAINT pk_actividad PRIMARY KEY (id_actividad)
  15. )
  16.  
  17. CREATE TABLE volcanes
  18. (
  19.   cod_volcan serial NOT NULL,
  20.   nom_volcan CHARACTER VARYING(30),
  21.   obs_volcan text,
  22.   CONSTRAINT pk_volcanes PRIMARY KEY (cod_volcan)
  23. )
  #15 (permalink)  
Antiguo 06/02/2012, 13:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
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

Etiquetas: formulario, medio, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:22.