Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2012, 21:06
Montes28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 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