Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Dudas de sintaxis de consulta condicionada

Estas en el tema de Dudas de sintaxis de consulta condicionada en el foro de PHP en Foros del Web. Hola a todos, necesito ayuda para ordenar mi código, pues está bien pero requiero que haga algo más y he intentado varias cosas pero falla... ...
  #1 (permalink)  
Antiguo 06/02/2015, 07:24
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Dudas de sintaxis de consulta condicionada

Hola a todos, necesito ayuda para ordenar mi código, pues está bien pero requiero que haga algo más y he intentado varias cosas pero falla... este es mi script y lo que necesito es que realice una consulta de todos los proyectos de "X" empresa no importando su estado al seleccionar de la lista desplegable la opción "Todos", pues de esa misma lista puedo realizar la consulta por estado dependiendo el seleccionado (si selecciono la empresa y el estado sale la consulta pero quiero que salga tambien que al seleccionar la empresa y la opcion "todos" muestre todo obviamente)...

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST["btn1"])){
  3.     $btn=$_POST["btn1"];
  4.         $empresas=$_POST["txtempresas"];
  5.         $estado=$_POST["txtestado"];
  6.     if($btn=="Buscar"){
  7.    
  8.        
  9.        
  10.         $sql="select * from proyectos where proyectos.idempresa = '" . $empresas . "' and proyectos.estado = '" . $estado . "' order by estado";
  11.         $cs=mysql_query($sql,$cn);
  12.         if(mysql_num_rows($cs) > 0){
  13.         echo"<center>
  14. <table border='1' class='altrowstable' id='alternatecolor'>
  15. <tr>
  16. <td><font color='#0B71C4'><strong>Codigo Proyecto</strong></font></td>
  17. <td><font color='#0B71C4'><strong>Nombre Proyecto</strong></font></td>
  18. <td><font color='#0B71C4'><strong>Supervisor Asignado</strong></font></td>
  19. <td><font color='#0B71C4'><strong>Estado</strong></font></td>
  20. <td><font color='#0B71C4'><strong>Acci&oacute;n</strong></font></td>
  21.  
  22.  
  23. </tr>";
  24.         while($resul=mysql_fetch_array($cs)){
  25.             $var=$resul[0];
  26.             $var1=$resul[1];
  27.             $var2=$resul[2];
  28.             $var3=$resul[3];
  29.             $var4=$resul[4];
  30.             $var5=$resul[5];
  31.             $var6=$resul[6];
  32.             $var7=$resul[7];
  33.             $var8=$resul[8];
  34.            
  35.            
  36.             echo "<tr>
  37.  
  38. <td>$var1</td>
  39. <td>$var2</td>
  40. <td>$var3</td>
  41. <td>$var8</td>
  42. <td><a href='informe.php?proy=$var1'><img src='informe.png'></a></td>
  43. </tr>";
  44.             }
  45.            
  46.             echo "</table>
  47. </center><br><br>";
  48. }else{
  49. echo "<center><h1>No hay proyectos en la empresa seleccionada</h1></center>";
  50. }  
  51. }
  52. }  
  53. ?>

Gracias de antemano,
  #2 (permalink)  
Antiguo 06/02/2015, 07:41
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Dudas de sintaxis de consulta condicionada

A ver, lo que pasa es que le estas diciendo que busque aquellos registros que en el campo proyectos.estado tengan el valor $estado.
Y claro, si $estado = Todos, pues supongo que no funciona.

Yo lo haria con un condicionante:

Código PHP:
if($_POST['estado'] = 'Todos'){
//Haces un select quitando lo de proyectos.estado = $estado
}
else{
//Pones la consulta que ya tienes hecha

  #3 (permalink)  
Antiguo 06/02/2015, 07:48
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Dudas de sintaxis de consulta condicionada

Exacto, eso que dijiste es el punto al que me refería y ya voy arreglando el código para ver, ya informo. Gracias
  #4 (permalink)  
Antiguo 06/02/2015, 07:54
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Dudas de sintaxis de consulta condicionada

Nada, de la forma en que me dijiste no funcionó, y de la que yo intenté tampoco:

Código PHP:
Ver original
  1. if($estado = 'Todos'){
  2. ...

pues selecciono "Todos" y obvio, se listan todos los proyectos de la empresa, pero si selecciono un estado en particular de dicha empresa (EE,A,EXF,F) me lista igual todos los proyectos de la empresa con todos sus estados y no lista las empresa del estado que escogí... hace lo mismo para las dos formas... de allí no he podido avanzar aunque sigo probando opciones...
  #5 (permalink)  
Antiguo 06/02/2015, 07:55
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Dudas de sintaxis de consulta condicionada

Pon el codigo completo de esa parte, porque imagino que hay algun fallo al declarar las variables.
  #6 (permalink)  
Antiguo 06/02/2015, 08:47
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Dudas de sintaxis de consulta condicionada

ok, te lo mando como lo tengo actualmente con la ultima prueba que hice:

Código PHP:
Ver original
  1. <font color="#0B71C4"><strong>Empresas:</strong></font>
  2.         </td>
  3.         <td>
  4.         <?php
  5.                 $SQL1 = "select nomempresa from empresas order by nomempresa";
  6.                 $RESULTADO1=mysql_query($SQL1);
  7.                 ?>
  8.                 <select name="txtempresas" size="1">
  9.                 <option value=""></option>
  10.                 <?
  11.                 while($FILA=mysql_fetch_array($RESULTADO1))
  12.                 echo "<option value='".$FILA["nomempresa"]."'>"
  13.                 .$FILA["nomempresa"]."</option>";?>
  14.                 </select>
  15.                 </td>
  16.         <!--<td><input type="submit" name="btn1"value="Empresa"/></td>-->
  17.        
  18.         <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  19.         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  20.         </td>
  21.        
  22.         <td>
  23.         <font color="#0B71C4"><strong>Estado:</strong></font>
  24.         </td>
  25.         <td>
  26. <td><label for="txtestado"></label>
  27.   <select name="txtestado" id="txtestado">
  28.     <option value="Todos">Todos</option>
  29.     <option value="EE">EE</option>
  30.     <option value="EXF">EXF</option>
  31.     <option value="F">F</option>
  32.     <option value="A">A</option>
  33.     <option value="G">G</option>
  34.     <option value="NA">NA</option>
  35.     </select></td></tr>
  36.         <td><input type="submit" name="btn1"value="Buscar"/></td>
  37.         </table>
  38.         </center>
  39.        
  40.         <p>&nbsp;</p>
  41.         <p>&nbsp;</p>
  42.        
  43. </form>
  44. <br />
  45. <?php
  46. if(isset($_POST["btn1"])){
  47.     $btn=$_POST["btn1"];
  48.         $empresas=$_POST["txtempresas"];
  49.        
  50.     if($btn=="Buscar"){
  51.    
  52.         if($_POST['txtestado'] = 'Todos'){
  53.        
  54.         $sql="select * from proyectos where proyectos.idempresa = '" . $empresas . "' order by estado";
  55.         $cs=mysql_query($sql,$cn);
  56.         if(mysql_num_rows($cs) > 0){
  57.         echo"<center>
  58. <table border='1' class='altrowstable' id='alternatecolor'>
  59. <tr>
  60. <td><font color='#0B71C4'><strong>Codigo Proyecto</strong></font></td>
  61. <td><font color='#0B71C4'><strong>Nombre Proyecto</strong></font></td>
  62. <td><font color='#0B71C4'><strong>Supervisor Asignado</strong></font></td>
  63. <td><font color='#0B71C4'><strong>Estado</strong></font></td>
  64. <td><font color='#0B71C4'><strong>Acci&oacute;n</strong></font></td>
  65.  
  66.  
  67. </tr>";
  68.         while($resul=mysql_fetch_array($cs)){
  69.             $var=$resul[0];
  70.             $var1=$resul[1];
  71.             $var2=$resul[2];
  72.             $var3=$resul[3];
  73.             $var4=$resul[4];
  74.             $var5=$resul[5];
  75.             $var6=$resul[6];
  76.             $var7=$resul[7];
  77.             $var8=$resul[8];
  78.            
  79.            
  80.             echo "<tr>
  81.  
  82. <td>$var1</td>
  83. <td>$var2</td>
  84. <td>$var3</td>
  85. <td>$var8</td>
  86. <td><a href='informe.php?proy=$var1'><img src='informe.png'></a></td>
  87. </tr>";
  88.             }
  89.            
  90.             echo "</table>
  91. </center><br><br>";
  92. }else{
  93. echo "<center><h1>No hay proyectos en la empresa seleccionada</h1></center>";
  94. }  
  95. }
  96.  
  97. }else{
  98.  
  99. $estado=$_POST["txtestado"];
  100. $sql="select * from proyectos where proyectos.idempresa = '" . $empresas . "' and proyectos.estado = '" . $estado . "'  order by estado";
  101.         $cs=mysql_query($sql,$cn);
  102.         if(mysql_num_rows($cs) > 0){
  103.         echo"<center>
  104. <table border='1' class='altrowstable' id='alternatecolor'>
  105. <tr>
  106. <td><font color='#0B71C4'><strong>Codigo Proyecto</strong></font></td>
  107. <td><font color='#0B71C4'><strong>Nombre Proyecto</strong></font></td>
  108. <td><font color='#0B71C4'><strong>Supervisor Asignado</strong></font></td>
  109. <td><font color='#0B71C4'><strong>Estado</strong></font></td>
  110. <td><font color='#0B71C4'><strong>Acci&oacute;n</strong></font></td>
  111.  
  112.  
  113. </tr>";
  114.         while($resul=mysql_fetch_array($cs)){
  115.             $var=$resul[0];
  116.             $var1=$resul[1];
  117.             $var2=$resul[2];
  118.             $var3=$resul[3];
  119.             $var4=$resul[4];
  120.             $var5=$resul[5];
  121.             $var6=$resul[6];
  122.             $var7=$resul[7];
  123.             $var8=$resul[8];
  124.            
  125.            
  126.             echo "<tr>
  127.  
  128. <td>$var1</td>
  129. <td>$var2</td>
  130. <td>$var3</td>
  131. <td>$var8</td>
  132. <td><a href='informe.php?proy=$var1'><img src='informe.png'></a></td>
  133. </tr>";
  134.             }
  135.            
  136.             echo "</table>
  137. </center><br><br>";
  138. }else{
  139. echo "<center><h1>No hay proyectos en la empresa seleccionada</h1></center>";
  140. }  
  141. }
  142.  
  143.  
  144. }  
  145. ?>
  #7 (permalink)  
Antiguo 06/02/2015, 08:54
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Dudas de sintaxis de consulta condicionada

Asi de primeras no veo el error.

Prueba una cosa, en el else, quitalo todo y haz simplemente

Código PHP:
else{
echo 
$estado

A ver que imprime, obviamente seleccionando algo que no sea Todos.
  #8 (permalink)  
Antiguo 06/02/2015, 09:17
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Dudas de sintaxis de consulta condicionada

Nada, veo que lo que no se cumple es el "Sino" (else) pues quitando todo y colocando el echo no pasa nada solo se cumple la primera condición.
  #9 (permalink)  
Antiguo 06/02/2015, 10:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Dudas de sintaxis de consulta condicionada

Pues lo más simple sería que crearas dinámicamente la consulta, dependiendo de la selección que se haga. Y en caso de que se seleccione ese "Todos", simplemente no le pones esta parte:

Código SQL:
Ver original
  1. AND proyectos.estado = '" . $estado . "'
Eso es precisamente lo que ya te aconsejaron:
Código PHP:
$sql="SELECT * FROM proyectos WHERE idempresa = '" $empresas "' ";
if(
$_POST['estado'] == 'Todos'){
   
$sql.= " AND estado = '" $estado "' ";
}
$sql .= "  ORDER BY estado"
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/02/2015 a las 11:11
  #10 (permalink)  
Antiguo 06/02/2015, 10:35
Avatar de Jlopez2014  
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Dudas de sintaxis de consulta condicionada

Listo, ya está resuelto, gracias por el consejo gnzsoloyo... fue más práctico y queda sencillo para cualquier modificación aunque hay más líneas de código pero al final funciona y está bien así... gracias a todos por su colaboración y tiempo...

Etiquetas: php+base+de+datos, sintaxis
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 14:39.