PHP - Busquedas

 
Vista:
sin imagen de perfil

Busquedas

Publicado por Fernando (12 intervenciones) el 19/01/2016 17:49:16
Buen día compañeros Estoy realizando un proyecto en php y mysql en el cual tengo una tabla que se llena con un campo de otra tabla .

Bitacora
Estatus_Expedientes

mi tabla bitácora en el Campo Estado_exp se llena con el id del campo ID_Estatus de la tabla Estatus_Expedientes esto debido a que estoy utilizando combo box(list/menu) en un formulario para llenar esa tabla.

Ya Inserte una búsqueda con un campo de texto
este me busca por ID_Expediente y por Promotor.

quiero agregar la condición para que me haga la búsqueda por Estatus del Expediente .
Pero no se como hacerlo para que me busque con Descripcion_Estatus? ya que al hacer la consulta como esta guardado por id no me haya resultado. a menos que ponga el id de estatus.
no se si me explico .
Mas delante si esta búsqueda es posible llenare el campo Promotor de la tabla bitacora de la misma forma con ID.


se me ocurre que podría agregar en la búsqueda un list donde me despliegue los estatus con una consulta a la tabla, y al momento de seleccionar alguno me muestre los resultados.
no se que mas podria hacer alguien podria orientarme porfavor ..

Gracias de Antemano.

adjunto Archivo php.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Busquedas

Publicado por xve (6935 intervenciones) el 19/01/2016 20:29:22
Hola Fernando, no es nada recomendable buscar por el texto, ya que no es lo mas optimo, pero si así quieres hacerlo, la unica manera es vinculando las dos tablas... algo así:

1
2
SELECT * FROM tabla1 t1 LEFT JOIN tabla2 t2 ON t1.Estado_exp=t2.ID_Estatus
WHERE t2.Descripcion_Estatus='Prestado'

Lo que haces, es juntar las dos tablas, y posteriormente hace la búsqueda...

Coméntanos si te funciona, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Busquedas

Publicado por Fernando (12 intervenciones) el 19/01/2016 21:57:21
Hola que tal Gracias por Responder
Haber si entendi..
1
2
SELECT * FROM tabla1 t1 LEFT JOIN tabla2 t2 ON t1.Estado_exp=t2.ID_Estatus
WHERE t2.Descripcion_Estatus=$_REQUEST["busqueda_txt"]

o que otra opción me recomendarías ?.
como comentas algo mas optimo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.fila_0 { background-color: #FFFFFF;}
.fila_0:hover{background-color:#FFFF99; }
.fila_1 { background-color: #E1E8F1;}
.fila_1:hover{background-color:#FFFF99; }
 
 
</style>
<link rel="stylesheet" href="CSS/estilodegradado.css" type="text/css"  />
 
 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
</head>
 
<body>
<?PHP
include ("Conexion/Conexion2.php");
include ("paginacion.php");
//****************************************FILTRO**********************
 
	if($_REQUEST["btn_buscar"]!="" || $_REQUEST["busqueda_txt"]!="")//verifica si el usuario pulso el boton buscar  y  el campo  de texto  esta vacio 
 
{
 
	if(is_numeric($_REQUEST["busqueda_txt"]))// verifica si lo que escribio es numerico en el cuadro de texto
		$filtro=" WHERE Usuario=ID_Departamento AND Estado_exp=ID_Estatus  AND ID_Expediente=".$_REQUEST["busqueda_txt"];
 
			else
			$filtro=" WHERE Usuario=ID_Departamento AND Estado_exp=ID_Estatus  AND(Promotor like '%".$_REQUEST["busqueda_txt"]."%' or Nombre_Promotor like '%".$_REQUEST["busqueda_txt"]."%')";
 
 
 
}
	else {$Mensaje= "<font color='red'>Porfavor Escriba  algo en el cuadro de texto antes de realizar la busqueda</font>";}
 
 
?>
 
<?PHP
$Consulta_registros=mysql_query("select * from Bitacora,Departamentos, Estatus_Expedientes $filtro");
$num_registros=mysql_num_rows($Consulta_registros);
 
if($num_registros==0)
{
	echo "No se han encontrado Registros";
	echo "<br><a href='index.php?sec=cas' accesskey='r'>Regresar </a>";
	mysql_close($link);
	exit();
}
 
/*INICIO SECCION DE PAGINACION*/
$registros=100;
$pagina=$_GET["num"];
if(is_numeric($pagina))
	$inicio=(($pagina-1)*$registros);
	else
		$inicio=0;
 
?>
<div align="center" class="fila_titulo">
  <p>Busqueda de Registros</p>
  <form id="form1" name="form1" method="post" action="">
    <label>
    <input name="busqueda_txt" type="text" id="busqueda_txt" value="<?PHP echo $_GET["busqueda_txt"] ?>" autofocus/>
    </label>
    <label>
    <input name="btn_buscar" type="submit" id="btn_buscar" value="Buscar" />
    </label>
 
 
	<?PHP
	echo $Mensaje;
	echo $num_registros;
	?>
 
 
 
 </form>
</div>
    <div class="contenido" align="center"><!--aqui inicia  el div del diseño de contenido-->
   <br />
  <table width="949" border="1" cellpadding="0" cellspacing="0"  align="center" >
 
<tr>
           <td width="51"  align="center" bgcolor="#99CC00">ID Bitacora</td>
		   <td width="60"  align="center" bgcolor="#99CC00">Fecha Solicitud</td>
		   <td width="111"  align="center" bgcolor="#99CC00">Autoriza</td>
		   <td width="69"  align="center" bgcolor="#99CC00">Fecha Entrega</td>
		   <td width="70"  align="center" bgcolor="#99CC00">ID Expediente</td>
		   <td width="103"  align="center" bgcolor="#99CC00">Estatus</td>
	       <td width="111"  align="center" bgcolor="#99CC00">Promotor</td>
		   <td width="102"  align="center" bgcolor="#99CC00">Nombre del Promotor</td>
		   <td width="82"  align="center" bgcolor="#99CC00">Telefono</td>
		   <td width="168"  align="center" bgcolor="#99CC00">Direccion</td>
 
    </tr>
 
<?php
if ($filtro=="")
$Consulta_registros=mysql_query("select * from Bitacora, Departamentos, Estatus_Expedientes WHERE Usuario=ID_Departamento AND Estado_exp=ID_Estatus ". $filtro ." ORDER BY ID_Bitacora DESC LIMIT $inicio,$registros");
else{
$Consulta_registros=mysql_query("select * from Bitacora, Departamentos, Estatus_Expedientes ". $filtro ." ORDER BY ID_Bitacora DESC LIMIT $inicio,$registros");
	}
 
 
$i = 0 ;//se inicializa la variable en 0  que sera utilizada como contador para hacer la division de los registros entre 0 los impares quedan de un color.
 
 while ($mostrar_resultados=mysql_fetch_array($Consulta_registros))
 {
 
 
?>
     <tr  class="fila_<?php echo $i%2 ; ?>">
           <td  align="center"><?PHP echo $mostrar_resultados['ID_Bitacora']?>  </td>
		   <td  align="center" ><?PHP echo $mostrar_resultados['Fecha_Movimiento']?>  </td>
		   <td  align="center"><?PHP if($mostrar_resultados["ID_Departamento"]==$mostrar_resultados["Usuario"])
		  																 echo $mostrar_resultados['Jefe_Departamento'];
																		 else { echo "error al mostrar la informacion";}?>  </td>
		   <td  align="center" ><?PHP echo $mostrar_resultados['Fecha_Entrega']?>  </td>
		   <td  align="center" ><?PHP echo $mostrar_resultados['ID_Expediente']?>  </td>
		   <td  align="center" ><?PHP if($mostrar_resultados["ID_Estatus"]==$mostrar_resultados["Estado_exp"])
		  																 echo $mostrar_resultados['Descripcion_Estatus'];
																		 else { echo "error al mostrar la informacion";}?>  </td>
	       <td  align="center"><?PHP echo $mostrar_resultados['Promotor']?>
		   <td  align="center" ><?php echo $mostrar_resultados['Nombre_Promotor']; ?> </td>
		   <td  align="center"><?PHP echo $mostrar_resultados['Telefono'];?></td>
		   <td  align="center" ><?PHP echo $mostrar_resultados['Direccion'] ?></td>
 
     </tr>
<?php
$i ++;
}
 
?>
</table>
</div><!--aqui se cierra el div del diseño de contenido-->
 
 
    <div align="center"  class="fila_titulo">
 
<?PHP
 echo paginar ($pagina,$num_registros,$registros,$nombre_pagina,$variables="",$variable_pagina="num" )
?>
</div>
<p>&nbsp;</p>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Busquedas

Publicado por xve (6935 intervenciones) el 20/01/2016 07:21:56
Hola Fernando, según entiendo, la búsqueda la hace por el texto introducido por el usuario en un cuadro de texto verdad?

Una manera, seria utilizar un selector (<select>) donde se encuentren todos los valores (ID_Estatus) y hacer la búsqueda por el id, quedando así la consulta SQL:
1
2
SELECT * FROM tabla1 t1 LEFT JOIN tabla2 t2 ON t1.Estado_exp=t2.ID_Estatus
WHERE t2.ID_Estatus=id seleccionado en el select

No se si me he sabido explicar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Busquedas

Publicado por Fernando (12 intervenciones) el 20/01/2016 23:02:37
Buen día Que tal ya lo estoy implementando de esa manera que me comentas haber como me funciona porque estoy batallando integrarlo . por lo pronto realice una prueba y funciono adjunto la linea de código , Aun no logro entender como es que funciona.


1
$filtro=" WHERE Usuario=ID_Departamento AND Estado_exp=ID_Estatus  AND(Estatus_Expedientes.Descripcion_Estatus like '%".$_REQUEST["busqueda_txt"]."%' or Nombre_Promotor like '%".$_REQUEST["busqueda_txt"]."%')";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar