Foros del Web » Programando para Internet » PHP »

Guardar busqueda

Estas en el tema de Guardar busqueda en el foro de PHP en Foros del Web. Hola a todos! os cuento mi problema a ver si podéis resolver mi duda. Tengo un formulario desde el que introduzco 2 fechas y me ...
  #1 (permalink)  
Antiguo 25/04/2011, 09:32
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 1 mes
Puntos: 3
Guardar busqueda

Hola a todos! os cuento mi problema a ver si podéis resolver mi duda.
Tengo un formulario desde el que introduzco 2 fechas y me aparece un listado de las actividades realizadas por el usuario entre esas fechas.
Al lado de cada resultado, tengo la opción de modificar o borrar la actividad. Cuando modifico o borro una actividad me gustaría que volviese a aparecer el resultado de la búsqueda anterior con las pertinentes modificaciones (datos actualizados del registro en cuestión o eliminación del mismo).
  #2 (permalink)  
Antiguo 25/04/2011, 09:53
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 13
Respuesta: Guardar busqueda

Hoal Portela85,

si no te importa el refresco de página, lo puedes hacer de la siguiente manera:
no se cómo actualizas, pero si lo haces con un formulario puedes hacer que el formulario actualice los datos y una vez hecho esto recargue la página que muestra los datos accediendo a la base de datos de nuevo; como ya se ha actualizado, se mostrarán los datos actuales.

Si crees que te sirve esta solución pero no sabes cómo hacerlo exactamente, lo dices por aquí e intentaré ser más explicito.
  #3 (permalink)  
Antiguo 25/04/2011, 11:03
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Guardar busqueda

puedes almacenar las 2 fechas que introduces en una variable de sesion...de esa manera la consulta que haces entre fechas se mantendrá
  #4 (permalink)  
Antiguo 25/04/2011, 11:15
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 7 meses
Puntos: 56
Respuesta: Guardar busqueda

si te ayuda puedes guardar la cadena de búsqueda en una variable de sesión y recuperarla luego de actualizar
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #5 (permalink)  
Antiguo 26/04/2011, 04:56
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Guardar busqueda

Hola JMSystem y jcxnet. Primero agradeceros vuestras respuestas.
Como me dijisteis, he intentado guardar las fechas de inicio y fin en sesión, pero cuando intento recuperarlas para que vuelva aparecer la búsqueda, no lo hace bien... Os paso el código a ver si véis el error!
Gracias!

Primero la función que busca por fechas:

Código:
public function BuscarTrabajoPorFechas($fechainicio,$fechafin){
            $query = "SELECT trabajos.idtrabajo AS idtrabajo, trabajos.indi AS indicador, trabajos.grupo AS grupo, ";
            $query.="clientes.cliente AS cliente, proyectos.proyecto AS proyecto, interlocutores.interlocutor ";
            $query.=" interlocutor, trabajos.f_inicio AS fechainicio, trabajos.f_fin AS fechafin, ";
            $query.="trabajos.descripcion AS descripcion, trabajos.cantidad AS cantidad, trabajos.escalado AS ";
            $query.="escalado, trabajos.descripcionescalado AS descripcionescalado, trabajos.preciototal AS ";
            $query.="preciotot, trabajos.pago_actuacion AS pagoactuacion, trabajos.nocturna AS nocturna, ";
            $query.="trabajos.comentarios AS comenta, status.statu AS status, trabajos.descripcionstatus AS ";
            $query.="descripcionstatus, actividades.actividad AS actividad, tallas.talla AS talla, ";
            $query.="tallas.precio AS precio, consultores.consultor AS consultor, trabajos.pagohoras AS ";
            $query.="pagohoras, trabajos.horas AS horas FROM consultores INNER JOIN (status INNER JOIN ";
            $query.="(((clientes INNER JOIN (((actividades INNER JOIN trabajos ON actividades.Id_actividad = ";
            $query.="trabajos.actividades_Id_actividad) INNER JOIN actividades_tallas ON ";
            $query.="actividades.Id_actividad = actividades_tallas.idactividad) INNER JOIN tallas ON ";
            $query.="actividades_tallas.idtalla = tallas.talla) ON clientes.Id_cliente = trabajos.cliente) ";
            $query.="INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) INNER JOIN ";
            $query.="interlocutores ON trabajos.interlocutor = interlocutores.Id_inerlocutor) ON ";
            $query.="status.idstatus  = trabajos.status_idstatus) ON consultores.Ident_consultor = ";
            $query.="trabajos.consultores_Ident_consultor WHERE trabajos.f_inicio>='$fechainicio' AND ";
            $query.="trabajos.f_inicio<='$fechafin';";
                $consulta = new Consulta($query);
                 while($fila = $consulta->obtener_fila()) {
				$trabajofechas[] = array (
						    'idtrabajo'	        =>$fila['idtrabajo'],
						    'indicador'	        =>$fila['indicador'],
						    'grupo'	        =>$fila['grupo'],
						    'cliente'	        =>$fila['cliente'],
						    'proyecto'	        =>$fila['proyecto'],
						    'interlocutor'	=>$fila['interlocutor'],
						    'fechainicio'	=>$fila['fechainicio'],
						    'fechafin'  	=>$fila['fechafin'],
						    'descripcion'	=>$fila['descripcion'],
						    'cantidad'  	=>$fila['cantidad'],
						    'escalado'	        =>$fila['escalado'],
                                                    'descripcionescalado'=>$fila['descripcionescalado'],
						    'preciotot'	        =>$fila['preciotot'],
						    'pagoactuacion'	=>$fila['pagoactuacion'],
						    'nocturna'	        =>$fila['nocturna'],
						    'comenta'   	=>$fila['comenta'],
						    'status'    	=>$fila['status'],
                                                    'descripcionstatus' =>$fila['descripcionstatus'],
						    'actividad'	        =>$fila['actividad'],
						    'precio'    	=>$fila['precio'],
						    'talla'     	=>$fila['talla'],
                                                    'precio'            =>$fila['precio'],
						    'consultor' 	=>$fila['consultor'],
                                                    'pagohoras'         =>$fila['pagohoras'],
                                                    'horas'             =>$fila['horas']);
                    }
                    return $trabajofechas;          
        }
El archivo desde que el que se modifican los trabajos. Os dejo unicamente los case que son necesarios en este caso. El case 'listar' sería el que me muestra los trabajos entre esas fechas. modificar.php

Código:
<?php
session_start();

include_once "./clases/Template.php";
include_once "./clases/Usuario.class.php";
include_once "./clases/Trabajos.class.php";

$tpl 		= new Template(); 
$usuario	= new Usuario();
$tpl_cabecera   = new Template();
$tpl_pie        = new Template();

$tpl_cabecera->set_vars(array(	'titulo'		=> 'Herramienta de Reporte de actividades - Modificaci&oacute;n de Actividades',
		    	'usuario_actual'  	=> $usuario->obtenerUsuarioIdActual()));

$accion = isset($_REQUEST['accion']) ? $_REQUEST['accion'] : 'desconocido';

switch ($accion){
        case 'listar':
            if (isset($usuario_actual)){
		
		if ((!isset($_SESSION['fechainio'])) && (!isset($_SESSION['fechafin']))){
        
                    try{
			$tpl->set_vars(array(   'fecha_inicio' => $_POST['fechainicio'],
                                       'fecha_fin'     => $_POST['fechafin']));
                        
                        $tpl->set('modificar_lista', Trabajos::BuscarTrabajoPorFechas($_POST['fechainicio'],$_POST['fechafin']));
			$_SESSION['fechainicio']= $_POST['fechainicio'];
			$_SESSION['fechafin']= $_POST['fechafin'];
		    }
                    catch (Exception $e) {
                            $tpl->set('error_msg',$e->getMessage());  
                    }}
		
		else{
			try{
			$tpl->set_vars(array(   'fecha_inicio' => $_SESSION['fechainicio'],
                                       'fecha_fin'     => $_SESSION['fechafin']));
                        
                        $tpl->set('modificar_lista', Trabajos::BuscarTrabajoPorFechas($_SESSION['fechainicio'],$_SESSION['fechafin']));
			
		    }
                    catch (Exception $e) {
                            $tpl->set('error_msg',$e->getMessage());  
                    }	
			
		}
	    }
	                    
                $tpl->set('accion','editar');
		$tpl_cuerpo = 'modificar_busqueda.tpl.php';
        break;

    case 'nuevabusqueda':
		unset($_POST['fechainicio']);
		unset($_POST['fechafin']);
		
		$tpl_cuerpo= 'modificar_inicio.tpl.php';
		
		break;

    case 'editar':
		 try{
			if (isset($usuario_actual)){
			$tpl->set_vars(array(
				
                        'usuario_actual'	=> $usuario->obtenerUsuarioIdActual(),
                        'proyecto'	=> $usuario->obtenerProyectos($usuario->obtenerUsuarioIdActual()),
                        'interlocutor'	=> $usuario->obtenerInterlocutores(),
                        'statu'		=> $usuario->obtenerStatus(),
                        'actividad'	=> $usuario->obtenerActividades()));
						
		    }}
                    catch (Exception $e) {
                            $tpl_report->set('error_msg',$e->getMessage());  
                    }
		$trabajo = new Trabajos();
		$trabajo->MostrarPorIdentificador($_GET['idtrabajo']);
		$tpl->set('trabajo',$trabajo);
		$tpl->set('accion','modificar');
		$tpl_cuerpo = 'modificar_modificar.tpl.php';
		
	break;
    
	case 'modificar':

		$trabajo = new Trabajos($_POST['idtrabajo']);
		$trabajo->modificarTrabajos($_POST['idtrabajo'],$_POST['grupo'],$_POST['proyecto'],$_POST['cliente'],$_POST['interlocutor'],$_POST['activiti'],$_POST['fechainicio'],$_POST['fechafin'],$_POST['descripcion'],$_POST['status'],$_POST['descripcionstatus'],$_POST['cantidad'],$_POST['escalado'],$_POST['descripcionescalado'],$_POST['pago'],$_POST['nocturna'],$_POST['pagohoras'], $_POST['horas']);
		    echo $_SESSION['fechafin'];
		$tpl->set('accion','listar');
		$tpl_cuerpo = 'modificar_busqueda.tpl.php';
	break; 	

    default:
		$tpl_cuerpo = 'modificar_inicio.tpl.php';
}

$tpl->set('cabecera', $tpl_cabecera->fetch('cabecera.tpl.php'));
$tpl->set('pie', $tpl_pie->fetch('pie.tpl.php'));

echo $tpl->fetch($tpl_cuerpo);
?>
Finalmente las plantillas desde donde se busca y aparece el listado con la búsqueda.
modificar_incio.tpl.php
Código:
  <?= $cabecera; ?>  

<h3>B&uacute;squeda de Actividades</h3>
<p>Seleccione dos fechas para comenzar con la b&uacute;squeda.</p>

    <form method="POST" action="modificar.php" >
    
        <input type="hidden" name="accion" value="listar">     

        <span>Fecha de inicio:</span>
        
            <input name="fechainicio" id="demo1" type="text" size="25" class="fechas"/><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="js/cal.gif" width="16" height="16" border="0" alt="Selecciona una fecha de Inicio"></a>
            
            
            
        <span>Fecha de fin</span>
        
            <input name="fechafin" id="demo2" type="text" size="25" class="fechas"/><a href="javascript:NewCal('demo2','ddmmyyyy')"><img src="js/cal.gif" width="16" height="16" border="0" alt="Selecciona una fecha de Fin, si quieres..."></a>
            
            
        <input name="listar" type="submit" value="Env&iacute;a tu consulta"/>
      
            
    </form>


    <?= $pie; ?>
  #6 (permalink)  
Antiguo 26/04/2011, 04:56
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Guardar busqueda

modificar_busqueda.tpl.php
Código:
<p>Selecciona un Trabajo que quieras modificar.</p>

<p><font color=red><?php if (isset($error_msg)) print $error_msg;?></font></p>
<table border="1" bgcolor="#ffffff" cellspacing="0" cellpadding="3" width="55%" align="left">
<tr>
<th colspan="10" align="left"><h2>Si desea realizar una nueva b&uacute;squeda pinche <a href="modificar.php?accion=nuevabusqueda">aqu&iacute;</a></h2> </th>
</tr>    
<tr>
<th colspan="10" align="left"><h3>Listado de actividades reportadas entre el <?= $fecha_inicio; ?> y el <?= $fecha_fin; ?> </h3> </th>
</tr>

<tr>
<!--<th>Indicador</th>
<th>Grupo</th>-->
<th>Cliente</th>
<th>Proyecto</th>
<th>Interlocutor</th>
<th>Fecha Inicio</th>
<!--<th>Fecha Fin</th>-->
<th>Descripcion</th>
<!--<th>Cantidad</th>
<th>Escalado</th>
<th>Descripcion Escalado</th>
<th>Precio Total</th>
<th>Pago Actuación</th>
<th>Nocturna</th>
<th>Comentarios</th>-->
<!--<th>Status</th>
<th>Descripcion Status</th>-->
<th>Actividad</th>
<!--<th>Precio</th>-->
<th>Talla</th>
<!--<th>Consultor</th>
<th>Pago horas</th>
<th>Horas</th>-->
<th>Acciones Posibles</th>
</tr>

<?php 
if (isset($modificar_lista) && count($modificar_lista)>0) {
    $i=1;
    foreach ($modificar_lista as $resultadobusqueda) {
?>

<tr>
<!--<td bgcolor="#ffffff"><b><?=$resultadobusqueda['indicador'];?></b></td>
<td ><b><?=$resultadobusqueda['grupo'];?></b></td>-->
<td ><b><?=$resultadobusqueda['cliente'];?></b></td>
<td ><b><?=$resultadobusqueda['proyecto'];?></b></td>
<td ><b><?=$resultadobusqueda['interlocutor'];?></b></td>
<td ><b><?=$resultadobusqueda['fechainicio'];?></b></td>
<!--<td ><b><?=$resultadobusqueda['fechafin'];?></b></td>-->
<td ><b><?=$resultadobusqueda['descripcion'];?></b></td>
<!--<td ><b><?=$resultadobusqueda['cantidad'];?></b></td>
<td ><b><?=$resultadobusqueda['escalado'];?></b></td>
<td ><b><?=$resultadobusqueda['descripcionescalado'];?></b></td>
<td ><b><?=$resultadobusqueda['preciotot'];?></b></td>
<td ><b><?=$resultadobusqueda['pagoactuacion'];?></b></td>
<td ><b><?=$resultadobusqueda['nocturna'];?></b></td>
<td ><b><?=$resultadobusqueda['comenta'];?></b></td>-->
<!--<td ><b><?=$resultadobusqueda['status'];?></b></td>
<td ><b><?=$resultadobusqueda['descripcionstatus'];?></b></td>-->
<td ><b><?=$resultadobusqueda['actividad'];?></b></td>
<!--<td ><b><?=$resultadobusqueda['precio'];?></b></td>-->
<td ><b><?=$resultadobusqueda['talla'];?></b></td>
<!--<td ><b><?=$resultadobusqueda['consultor'];?></b></td>
<td ><b><?=$resultadobusqueda['pagohoras'];?></b></td>
<td ><b><?=$resultadobusqueda['horas'];?></b></td>-->

<td>	<a href="modificar.php?accion=editar&idtrabajo=<?=$resultadobusqueda['idtrabajo'];?>">Editar</a>&nbsp;&nbsp;
	<a href="modificar.php?accion=vereliminar&idtrabajo=<?=$resultadobusqueda['idtrabajo'];?>">Borrar</a> </td>
</tr>

<?php
 
   }}
 else {
	print 'No hay proyectos reportados esos d&iacute;s... ¡Qu&eacute; vergüenza!';
}
?>


</table>

<?= $pie ?>

Etiquetas: busquedas
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 12:35.