PHP - ¿ como buscar en la base datos un valor y el mismo valor con registro anterior ?¿?

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un valor y el mismo valor con registro anterior ?¿?

Publicado por hugo (36 intervenciones) el 27/07/2020 22:31:05
buenos dias busco su ayuda para solucionar un problema que tengo

mi tabla contiene los siguientes elementos

editar
idturnos
ccpp
titular
ubicacion
fecha
finturno


realizo una busqueda en mi base de datos

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
if ($_POST['buscadorccpp']) {
    // Tomamos el valor ingresado
    $buscar = $_POST['palabraccpp'];
;
    // Si está vacío, lo informamos, sino realizamos la búsqueda
    if (empty($buscar)) {
        echo "No se ha ingresado APELLIDO Y NOMBRE ";
    } else {
	//"Hoja2" nombre de base datos por si ay que regresar
 
	$todasbd = array("tablaconreguistros", "Insdiamante", "Inssocavon");
	$longitud = count($todasbd);
 
 
	//Recorro todos los elementos
	for($i=0; $i<$longitud; $i++)  {
 
 
        $sql = "SELECT * FROM $todasbd[$i] WHERE titular like '%$buscar%' ORDER BY idturnos DESC LIMIT 2";
        $result = mysqli_query($conexion, $sql);
        $total = mysqli_num_rows($result);
 
        // Imprimimos los resultados
 
        //Modificacion de codigo....
        if ($total > 0) {
 
		// fecha de hoy
					$fecha_actual = date("Y-m-d");
 
 
				     // fecha traida de la base de datos
 
 
            while ($row = mysqli_fetch_array($result)) {
 
 
 
y luego muestro mis resultados  -----------------
 
 
 
$fechaturno = $row['finturno'];
		if($fechaturno >= $fecha_actual) {
 
	?>
	<table>
		<tr class="muestra">
	<td><a href="<?= $row['ubicacion']; ?>"><?= $row['titular']; ?><br>C.C. P.P. <?= $row['ccpp']; ?></br></a></td>
	<td>VIGENCIA <?= $row['fecha']; ?></br></a></td>
	<table>
 
 
 
         <?php
							echo " es mayor";
						} else {
							echo " menor que ";
			}			}
		}
 
            }
            echo "<p>Resultados: $total</p>";
        } else {
            echo "No se encontraron resultados para: $buscar";
        }
	}
    }
}
?>

busco por nombre o por numero interno de mi trabajo y funciona bien pero ahora trato de buscar en mi base de datos aparte del dato actual el anterior siempre y cuando todavía le dato anterior este en vigencia (if($fechaturno >= $fecha_actual) {) con esta formula controlo que la vigencia y la fecha del turno

cuando busco por nuestro codigo particular funciona bien pero cuando busco titular pueden existir muchos resultados con un apellido y por el limit 2 solo me muestra dos y no como deseo que es que me busque un apellido y me muestre los los dos ultimos registros luego pase al siguiente y me muestre los dos resultado de este nuevo y asi con todos los que aparescan en esa busqueda

espero haber sido claro

saludos atentamente
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 italo_pm
Val: 877
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un valor y el mismo valor con registro anterior ?¿?

Publicado por italo_pm (190 intervenciones) el 28/07/2020 02:07:36
Hola

Has probado a ejecutar tu query o querys select y el resultado es el que te esperabas?

prueba primero con tus querys.

salud2.
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

¿ como buscar en la base datos un valor y el mismo valor con registro anterior ?¿?

Publicado por hugo (36 intervenciones) el 28/07/2020 05:58:09
si el resultado es el esperado cuando no utilizo el limit 2 si busco por apellido ej: gonzalez y tengo muchos con ese apellido me salen todos

pero lo que nesesito es que cuando encuentre a todos los gonzalez me traiga el resultado del turno vigente y el turno anterior

si busco por el dato del numero interno nuestro me funciona bien el limit ya que le doy un valor único y me busca los últimos dos datos con ese valor que le di pero al buscar por nombre no se como decirle que me busque todos los resultados y de todos esos resultados me traiga los ultimos dos turnos


por ejemplo si busco gonzalez

y tengo en la base de datos a gonzalez pablo y gonzalez romina

quiero que aparte de buscarme todos los gonzalez me traiga los dos ultimos turnos de gonzalez pablo y los dos ultimos turnos de gonzalez romina
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 javier
Val: 1.527
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un valor y el mismo valor con registro anterior ?¿?

Publicado por javier (439 intervenciones) el 28/07/2020 08:59:39
hola,
haz un print_r de row con pre y a ver como viene el array

1
2
3
echo '<pre>';
print_r($row);
echo '</pre>'

a ver si viendo como tellega la info y podemos limitar a 2 resultados por vuelta usando group by apellido en la consulta sin el limit.


1
$sql = "SELECT * FROM $todasbd[$i] WHERE titular like '%$buscar%' GROUP BY apellido ORDER BY idturnos DESC ";

tambuen intentaria diferenciar si la variable que te llega por POST es un nombre, una ID o codigo interno o un titular, tal vez usando 2 campos del form de busqueda, uno para nombre y codigo u otro para titular y de esta manera poder armar dos querys diferentes, una con limit 2 y otra sin limit
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
Val: 24
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por hugo (36 intervenciones) el 28/07/2020 16:12:32
el print me arrojo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
    [0] => 326
    [editar] => 326
    [1] => 8
    [idturnos] => 8
    [2] => 4009-409
    [ccpp] => 4009-409
    [3] => GONZALEZ BERTA LIRIA
    [titular] => GONZALEZ BERTA LIRIA
    [4] => turnos/subdelegacion/pdf VIGENTE (21)/pdf PAREDES hij 1 CENTRO VIGENTE (21)/4009-282.pdf
    [ubicacion] => turnos/subdelegacion/pdf VIGENTE (21)/pdf PAREDES hij 1 CENTRO VIGENTE (21)/4009-282.pdf
    [5] => 2018-10-24
    [fecha] => 2018-10-24
    [6] => 2014-07-01
    [finturno] => 2014-07-01
)

el segundo comentario utilizo la
variables todasdb para buscar en todas mis bases de datos
variable buscar para pasarle el resultado de mi busqueda y que en esta búsqueda me busque por el apellido (tengo otra busqueda donde busco por nuestro numero) y como cada vez que subimos una nueva tanda de datos le asigna un idturnos a todos esos nuevos que subimos, trate de identificar que me buscara en los ultimos id turnos para la búsqueda
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 javier
Val: 1.527
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por javier (439 intervenciones) el 31/07/2020 19:15:03
hola

el Idturnos es autoincrement?

en el array que muestras el idturnos es 8

el anterior es el 7?
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
Val: 24
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por hugo (36 intervenciones) el 03/08/2020 16:04:11
buenas
tengo un id que incremetna por cada dato subido a la base de datos y aparte tengo mi valor id turnos que todos los datos que suba determinado dia se le asigna el mismo id turnos

ej

turnos subidos hoy dia
id idturnos
1 1
2 1
3 1
turnos subidos mañana
id idturnos
4 2
5 2
6 2

no se si esta bien llamarlo que esta como auto incremento ya que lo incremento cuando subi mis datos a la base de datos el "id" si esta como autoincremento
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 javier
Val: 1.527
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por javier (439 intervenciones) el 04/08/2020 19:58:10
Hola


Coge el valor de idturno, en este caso 8 y le restas uno, dos o tres, lo que quieras que te busque anterior a idturno 8, y haces una nueva consulta a la BBDD con LIMIT 2, y ojo, que yo no se como llevas la tabla o tus tablas, pero hacer tu el autoincrement? lo haces con programacion o a ojo?
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
Val: 24
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por hugo (36 intervenciones) el 06/08/2020 14:32:11
buenas
como tu me dices fue como habia empezado XD el problema estaba en que tenia que realizar dos busquedas y no una primero buscar los resultados por nombre y luego de cada nombre tomar el codigo nuestro y despues con ese código realizar nueva búsqueda


el autoincremento del id turnos lo hago con select max +1

1
2
$sql = "SELECT * FROM $todasbd[$i] WHERE titular like '%$buscar%' HAVING idturnos like '$total_maximo[0]'
$sql2 = "SELECT * FROM $todasbd[$i] WHERE ccpp = '$array_resultados[$i2]'  ORDER BY idturnos DESC LIMIT $limite";

gracias
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
Val: 48
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿ como buscar en la base datos un volar y el mismo valor con registro anterior ?¿?

Publicado por ernesto (12 intervenciones) el 06/08/2020 14:43:55
No hay problema en principio por hacer más de una búsqueda a la BBDD,y en este caso no lo veo. Así que por que no hacer dos o tres o cuatro consultas a la BBDD, o te crees que Google de una consulta a su BBDD te da los resultados?
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