Hola,
Tengo una serie de valores repetidos, que selecciono por los que ha insertado el id usuario conectado ($clave)
Donde me lo "hace mal" es en que cuando hago el echo se va al primer registro y yo quisiera que se fuera al último (al que se supone que tiene la fecha más alta. pero que es un texto por eso hago la transformación). Poniendo el id_registro un max no me hace nada y con un max en las fechas tampoco.
En WHERE c.delegadoDR='".$con2[0]."'
debería además coger de todos los registros donde delegadoDR es igual a con2 coger el que tenga un máximo id_registro que está en la tabla a.
¿Cómo y donde añadiría coge el valor más alto de la fecha STR_TO_DATE(a.fechavisita, '%d/%m/%Y') as date) o en su defecto en el id_registro.
¿Se pueden poner dos where? Lo intento con un and pero no lo consigo.
$bus=mysql_query("SELECT tx_username FROM tbl_users WHERE id_usuario=$clave ");
//echo mysql_num_rows($resultado);
//
while($con2 = mysql_fetch_array($bus)){
$busqueda2=mysql_query("SELECT c.ofi, c.delegadoDR, a.fechavisita,a.id_usuario, c.Oficina, c.nombrecorto, COUNT(IF(a.ofi and id_usuario=$clave,1,NULL)), max(a.id_registro)
FROM oficinas c left join registrovisitas a
ON a.ofi = c.ofi
WHERE c.delegadoDR='".$con2[0]."'
GROUP BY a.ofi
ORDER BY cast(STR_TO_DATE(a.fechavisita, '%d/%m/%Y') as date) DESC") ;
//WHERE c.delegadoDR='".$con2[0]."'
echo "<table width=500 border=1 align=left>"; //EMPIEZA A CREAR LA TABLA CON LOS ENCABEZADOS DE TABLA
echo "<tr>";//<tr> CREA UNA NUEVA FILA
echo "<td width=200>Oficina </td>";//<td> CREA NUEVA COLUMNA
echo "<td width=200>Nombre </td>";//<td> CREA NUEVA COLUMNA
echo "<td width=200>Dirección </td>";//<td> CREA NUEVA COLUMNA
echo "<td width=300>Fecha última visita</td>";
echo "<td width=300>Veces visitada</td>";
echo "</tr>";
while($consulta2 = mysql_fetch_array($busqueda2)){
echo "<tr>";
echo "<td>".$consulta2['0']."</td>";
echo "<td>".$consulta2['4']."</td>";
echo "<td>".$consulta2['5']."</td>";
echo "<td>".$consulta2['2']."</td>";
echo "<td>".$consulta2['6']."</td>";
echo "</tr>";
}
}
Alguien me puede ayudar?
Hola creó que el problema se solucionaría poniendo en el el where
And Max(STR_TO_DATE(STR_TO_DATE(a.fechavisita, '%d/%m/%Y') as date) o en su defecto en el id_registro.) pero no me funciona. ¿Donde puede estar el error?.
Una ayudita por favor jjj a ver si alguien. Me ayuda venga.
Mi sugerencia por ahora es que muestres la consulta y ejecútalo en la consola para ver que efectivamente es lo que necesitas.
$query_users = "SELECT tx_username FROM tbl_users WHERE id_usuario=$clave ";
echo $query_users."<br>";
$bus=mysql_query($query_users);
while($con2 = mysql_fetch_array($bus)){
$query_busqueda = "SELECT c.ofi, c.delegadoDR, a.fechavisita,a.id_usuario, c.Oficina, c.nombrecorto, COUNT(IF(a.ofi and id_usuario=$clave,1,NULL)), max(a.id_registro)
FROM oficinas c left join registrovisitas a......"; //Organiza este query
echo $query_busqueda;
$busqueda2=mysql_query( $query_busqueda);
Por ahora es en lo que te puedo ayudar. Si me da tiempo más tarde lo reviso.
Nada no lo consigo... :(
A ver si sé explicar el problema:
Tengo un listado de Centros (tabla "oficinas"), el campo númerico que define a la oficina es "ofi" y cada oficina tiene un empleado "delegadoDR" asignado a revisar.
Una tabla users, donde está el id_usuario y un campo "delegadoDR" (que es un texto con el nombre).
$clave es el usuario conectado y es un número de los posible valores de id_usuario.
Luego tengo otra tabla de revisión de centros que llamo "registrovisitas". Aquí, hay una campo "ofi" que es común al anterior, un campo "fecha" (que es un campo texto, dd/mm/aaa) y un "id_usuario".
Lo que yo quiero es sacar un listado con todos los registros de la tabla oficinas, donde el delegadoDR sea igual del usuario conectado y que por cada una de ellas vaya a "registrodevistas" y me diga la fecha última visita (si la ha visitado varias veces, debería dar el máximo valor de fecha) y el número de veces visitada. Si no aparece ninguna visita la fila de esa ofi aparecería en blanco en los campos de fecha y veces visitada.
A ver si me podeis ayudar.
Ya lo he solucionado chicos, era el orden...odio php y mysql jejejej