Foros del Web » Programando para Internet » PHP »

Consulta de varias variables

Estas en el tema de Consulta de varias variables en el foro de PHP en Foros del Web. Hola, tengo un formulario con 8 listas desplegables diferentes que generan una variable diferente, lo que necesito es crear una pagina que me genere una ...
  #1 (permalink)  
Antiguo 20/10/2013, 10:20
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Consulta de varias variables

Hola, tengo un formulario con 8 listas desplegables diferentes que generan una variable diferente, lo que necesito es crear una pagina que me genere una consulta a la base de datos dependiendo de la variable que escogio el usuario:


lo que he hecho es lo siguiente:


a cada lista desplegable le he dado una opcion vacia con valor 1, entonces, lo que he pensado es: luego de recibir las variables construyo una cadena de condicionales que validan si cada variable recibida equivale a 1 o tiene valor de consulta para entonces proceder.


este es el código que he hecho


Código PHP:
Ver original
  1. <?php
  2. //recibimos las variables
  3. $mes = $_POST['mes'];
  4. $cliente = $_POST['cliente'];
  5. $regional = $_POST['regional'];
  6. $proceso = $_POST['proceso'];
  7. $tipo_reporte = $_POST['tipo_reporte'];
  8. $medio = $_POST['medio'];
  9. $clasificacion = $_POST['clasificacion'];
  10. $reincidentes = $_POST['reincidentes'];
  11. $estado = $_POST['estado'];
  12. $tipo_accion = $_POST['tipo_accion'];
  13.  
  14. if ($mes == '1' ) {} else {
  15.     // hacemos la consulta en la base de datos
  16. $consulta = "SELECT * FROM OM_Oportunidad WHERE MONTH(fecha) ='$mes'";
  17. $corre_consulta = mysql_query($consulta) or die (mysql_error());
  18.  
  19. $numero_filas = mysql_num_rows($corre_consulta);
  20.  
  21. if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para el mes indicado, por favor intente de nuevo"; } else {
  22.  
  23. while ($res = mysql_fetch_array($corre_consulta)) {//formateamos las fechas
  24. //Fecha Inicial
  25. $fecha_inicial = $res['2'];
  26. $explotado = explode("-",$fecha_inicial);
  27. $dia_inicial=$explotado[2];
  28. $mes_inicial=$explotado[1];
  29. $anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact;
  30. $fecha_inicio.=$dia_inicial;
  31. $fecha_inicio.=" de ";
  32. $fecha_inicio.=$anno_inicial;
  33. //Fecha Entrega Plan de Accion
  34. $fecha_entrega = $res['12'];
  35. $explotado2 = explode("-",$fecha_entrega);
  36. $dia_entrega=$explotado2[2];
  37. $mes_entrega=$explotado2[1];
  38. $anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment;
  39. $fecha_entrega.=$dia_entrega;
  40. $fecha_entrega.=" de ";
  41. $fecha_entrega.=$anno_entrega;echo "
  42. ";
  43. }
  44. echo "
  45. <table border='1'>
  46. <tbody>
  47. <tr style='background: #ccc; font-weight: bold; text-align: center;'>
  48. <td>Fecha</td>
  49. <td>Clasificación de la OPM</td>
  50. <td>Cliente</td>
  51. <td>Regional</td>
  52. <td>Proceso</td>
  53. <td>Tipo de Reporte</td>
  54. <td>Medio</td>
  55. <td>Reincidentes</td>
  56. <td>Descripcion de la OPM</td>
  57. <td>Estado</td>
  58. <td>Tipo de Acción</td>
  59. <td>Entrega P.A.</td>
  60. <td>Tiempo de Respuesta (días)</td>
  61. </tr>
  62. <tr>
  63. <td>".$fecha_inicio."</td>
  64. <td>".$res['9']."</td>
  65. <td>".$res['1']."</td>
  66. <td>".$res['3']."</td>
  67. <td>".$res['4']."</td>
  68. <td>".$res['5']."</td>
  69. <td>".$res['6']."</td>
  70. <td>".$res['7']."</td>
  71. <td>".$res['8']."</td>
  72. <td>".$res['10']."</td>
  73. <td>".$res['11']."</td>
  74. <td>".$fecha_entrega."</td>
  75. <td>".$res['13']."</td>
  76. </tr>
  77. </tbody>
  78. </table>
  79. ";
  80. }
  81. }
  82. if ($cliente == '1' ) {} else {// hacemos la consulta en la base de datos
  83. $consulta = "SELECT * FROM OM_Oportunidad WHERE idCliente ='$cliente'";
  84. $corre_consulta = mysql_query($consulta) or die (mysql_error());
  85.  
  86. $numero_filas = mysql_num_rows($corre_consulta);
  87.  
  88. if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para el cliente indicado, por favor intente de nuevo"; } else {
  89.  
  90. echo "
  91.  
  92. ";
  93. while ($res = mysql_fetch_array($corre_consulta)) {
  94.     //formateamos las fechas
  95.     //Fecha Inicial
  96. $fecha_inicial = $res['2'];$explotado = explode("-",$fecha_inicial);
  97. $dia_inicial=$explotado[2];
  98. $mes_inicial=$explotado[1];
  99. $anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact;
  100. $fecha_inicio.=$dia_inicial;
  101. $fecha_inicio.=" de ";
  102. $fecha_inicio.=$anno_inicial;
  103. //Fecha Entrega Plan de Accion
  104. $fecha_entrega = $res['12'];$explotado2 = explode("-",$fecha_entrega);
  105. $dia_entrega=$explotado2[2];
  106. $mes_entrega=$explotado2[1];
  107. $anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment;
  108. $fecha_entrega.=$dia_entrega;
  109. $fecha_entrega.=" de ";
  110. $fecha_entrega.=$anno_entrega;echo "
  111. ";
  112. }
  113. echo "
  114. <table border='1'>
  115. <tbody>
  116. <tr style='background: #ccc; font-weight: bold; text-align: center;'>
  117. <td>Fecha</td>
  118. <td>Clasificación de la OPM</td>
  119. <td>Cliente</td>
  120. <td>Regional</td>
  121. <td>Proceso</td>
  122. <td>Tipo de Reporte</td>
  123. <td>Medio</td>
  124. <td>Reincidentes</td>
  125. <td>Descripcion de la OPM</td>
  126. <td>Estado</td>
  127. <td>Tipo de Acción</td>
  128. <td>Entrega P.A.</td>
  129. <td>Tiempo de Respuesta (días)</td>
  130. </tr>
  131. <tr>
  132. <td>".$fecha_inicio."</td>
  133. <td>".$res['9']."</td>
  134. <td>".$res['1']."</td>
  135. <td>".$res['3']."</td>
  136. <td>".$res['4']."</td>
  137. <td>".$res['5']."</td>
  138. <td>".$res['6']."</td>
  139. <td>".$res['7']."</td>
  140. <td>".$res['8']."</td>
  141. <td>".$res['10']."</td>
  142. <td>".$res['11']."</td>
  143. <td>".$fecha_entrega."</td>
  144. <td>".$res['13']."</td>
  145. </tr>
  146. </tbody>
  147. </table>
  148. ";
  149. }}
  150. if ($regional == '1' ) {} else {// hacemos la consulta en la base de datos
  151. $consulta = "SELECT * FROM OM_Oportunidad WHERE regional ='$regional'";
  152. $corre_consulta = mysql_query($consulta) or die (mysql_error());
  153.  
  154. $numero_filas = mysql_num_rows($corre_consulta);
  155.  
  156. if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para la regional indicada, por favor intente de nuevo"; } else {
  157.  
  158. echo "
  159.  
  160. ";
  161. while ($res = mysql_fetch_array($corre_consulta)) {//formateamos las fechas
  162. //Fecha Inicial
  163. $fecha_inicial = $res['2'];$explotado = explode("-",$fecha_inicial);
  164. $dia_inicial=$explotado[2];
  165. $mes_inicial=$explotado[1];
  166. $anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact;
  167. $fecha_inicio.=$dia_inicial;
  168. $fecha_inicio.=" de ";
  169. $fecha_inicio.=$anno_inicial;
  170. //Fecha Entrega Plan de Accion
  171. $fecha_entrega = $res['12'];$explotado2 = explode("-",$fecha_entrega);
  172. $dia_entrega=$explotado2[2];
  173. $mes_entrega=$explotado2[1];
  174. $anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment;
  175. $fecha_entrega.=$dia_entrega;
  176. $fecha_entrega.=" de ";
  177. $fecha_entrega.=$anno_entrega;echo "
  178. ";
  179. }
  180. echo "
  181. <table border='1'>
  182. <tbody>
  183. <tr style='background: #ccc; font-weight: bold; text-align: center;'>
  184. <td>Fecha</td>
  185. <td>Clasificación de la OPM</td>
  186. <td>Cliente</td>
  187. <td>Regional</td>
  188. <td>Proceso</td>
  189. <td>Tipo de Reporte</td>
  190. <td>Medio</td>
  191. <td>Reincidentes</td>
  192. <td>Descripcion de la OPM</td>
  193. <td>Estado</td>
  194. <td>Tipo de Acción</td>
  195. <td>Entrega P.A.</td>
  196. <td>Tiempo de Respuesta (días)</td>
  197. </tr>
  198. <tr>
  199. <td>".$fecha_inicio."</td>
  200. <td>".$res['9']."</td>
  201. <td>".$res['1']."</td>
  202. <td>".$res['3']."</td>
  203. <td>".$res['4']."</td>
  204. <td>".$res['5']."</td>
  205. <td>".$res['6']."</td>
  206. <td>".$res['7']."</td>
  207. <td>".$res['8']."</td>
  208. <td>".$res['10']."</td>
  209. <td>".$res['11']."</td>
  210. <td>".$fecha_entrega."</td>
  211. <td>".$res['13']."</td>
  212. </tr>
  213. </tbody>
  214. </table>
  215. ";
  216. }}
  217. if ($proceso == '1' ) {echo ' el valor de proceso es vacio';} else {echo ' se puede consultar por proceso';}
  218. if ($tipo_reporte == '1' ) {echo ' el valor de tipo reporte es vacio';} else {echo ' se puede consultar por tipo reporte';}
  219. if ($medio == '1' ) {echo ' el valor de medio es vacio';} else {echo ' se puede consultar por medio';}
  220. if ($clasificacion == '1' ) {echo ' el valor de clasificacion es vacio';} else {echo 'se puede consultar por clasificacion';}
  221. if ($reincidentes == '1' ) {echo ' el valor de reincidentes es vacio';} else {echo 'se puede consultar por reincidentes';}
  222. if ($estado == '1' ) {echo ' el valor de estadi es vacio';} else {echo 'se puede consultar por estado';}
  223. if ($tipo_accion == '1' ) {echo ' el valor de tipo accion es vacio';} else {echo 'se puede consultar por tipo accion';}
  224. ?>

Sin embargo lo que pasa es que cuando llega por ejemplo a $regional, me muestra el resultado de la consulta anterior $clientes.

mi pregunta es, cual sería la manera correcta de hacerlo?, pensé en un switch/case pero no le encontré la forma
__________________
Say no more.......

Etiquetas: fecha, formulario, mysql, select, variable, variables
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 03:09.