Mostrar la fecha más reciente

Iniciado por bgnumis, 7 Marzo 2017, 10:41 AM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

Hola a todos,

A ver si me podéis ayudar en esta consulta, en un campo "buscar" yo obtengo los resultados con LIKE y los saco en una tabla:


Código (php) [Seleccionar]


<?php

$busca
="";
$busca=$_GET['busca'];
$conexion=mysql_connect("localhost","oscarugt","@duende109109109") or die("Problemas en la conexion");
mysql_select_db("ugtdef",$conexion) or die("Problemas en la selección de la base de datos");  

if(
$busca!=""){
  
$busqueda=mysql_query("SELECT * FROM oficinas WHERE Oficina LIKE '%".$busca."%' OR direccion LIKE '%".$busca."%' OR Municipio LIKE '%".$busca."%' OR Provincia LIKE '%".$busca."%' OR ofi LIKE '%".$busca."%' OR delegadoDR LIKE '%".$busca."%'") ;

  
   

 
?>





<table width="1054"  border="1" align="left">
  <tr>

    <td>Oficina</td>
    <td>Telefono</td>
    <td>ofi</td>

      <td>Direcci&oacute;n</td>
        <td>CP</td>
          <td>Municipio</td>
            <td>Provincia</td>
              <td>CCAA</td>
               <td>DDR</td>
               <td>Enlace a Ofi</td>
               <td>Registrar</td>

  </tr>


  <?php
  

  
  
  
while($muestra=@mysql_fetch_array($busqueda)){
    echo '<tr>';
  echo '<td>'.$muestra['Oficina'].'</td>';
  
  echo '<td>'.'<a href="tel:+'.$muestra['telefono'].'">'.$muestra['telefono'].'</a>'.'</td>';     
 echo 
'<td>'.$muestra['ofi'].'</td>';
 
     echo '<td>'.$muestra['direccion'].'</td>';
   echo '<td>'.$muestra['cp'].'</td>';
     echo '<td>'.$muestra['Municipio'].'</td>';
   echo '<td>'.$muestra['Provincia'].'</td>';
       echo '<td>'.$muestra['CCAA'].'</td>';
      echo '<td>'.$muestra['delegadoDR'].'</td>';
   
 

  


echo '<td><a href="oficinaaconsultartres.php?id='.$muestra['ofi'].'">','<strong>Ir a Oficina</strong>','</a></td>';

echo 
'<td><a href="principal.php?id='.$muestra['ofi'].'">','<strong>Ir a Registrar</strong>','</a></td>';

  }
    }


 
?>


</table>




La cuestión es tengo una segunda tabla llamada "registrovisitas" en esta tabla está el campo común "ofi" y "fechavisita", lo que me gustaría es sacar en la tabla anterior, por cada línea de la tabla, que cogiera el campo "ofi" de esa línea que me saca en el echo y me saque el max(cast(STR_TO_DATE(fechavisita, '%d/%m/%Y') as date))

pero no lo consigo ni a la de tres.

¿esto es posible?

Muchas Gracias por adelantado.

bgnumis

¿Con un inner join o left join funcionaría aunque tenga un like?

De momento no lo he conseguido.

Hadess_inf

#2
Porque no hace un left join y agregas un max ¿?

Código (sql) [Seleccionar]
SELECT  T1.*, TMP.fecha
FROM T1 LEFT OUTER JOIN (SELECT T2.id_t1, MAX(T2.fecha) AS fecha FROM T2 GROUP BY id_t1) TMP ON ( T1.id = TMP.id_t1 )
WHERE T1.... /* condiciones */

bgnumis

Hola estoy intentando hacer el LEFT OUTER JOIN pero no hay manera, y leyendo sobre como montarlo no me aclaro

Código (sql) [Seleccionar]



SELECT
    P.cp, P.ofi
FROM
    oficinas P
   
LEFT OUTER JOIN (SELECT S.ofi , max(cast(STR_TO_DATE(fechavisita, '%d/%m/%Y') AS S FROM registrovisitas ) 

ON P.ofi=S.ofi






Còmo se monta el LEFT join con el select, cuál es el orden? A ver si me podéis ayudar.

bgnumis

Intenté con esto pero tampo me iba

Código (php) [Seleccionar]



$busca="";
$busca=$_GET['busca'];
$conexion=mysql_connect("localhost","dddfst","ffff") or die("Problemas en la conexion");
mysql_select_db("fff",$conexion) or die("Problemas en la selección de la base de datos"); 

if($busca!=""){
  $busqueda=mysql_query("SELECT c.Oficina, c.telefono, c.ofi,  c.direccion, c.cp, c.Municipio, c.Provincia,c.CCAA, c.delegadoDR , a.fechavisita, a.ofi, FROM oficinas c  LEFT OUTER JOIN (SELECT a.ofi, max(cast(STR_TO_DATE(a.fechavisita, '%d/%m/%Y') AS date FROM registrovisitas a GROUP BY a.ofi) ON ( c.ofi = a.ofi )

WHERE c.Oficina LIKE '%".$busca."%' OR c.direccion LIKE '%".$busca."%' OR c.Municipio LIKE '%".$busca."%' OR c.Provincia LIKE '%".$busca."%' OR c.ofi LIKE '%".$busca."%' OR c.delegadoDR LIKE '%".$busca."%'") ;

 
   

?>





Y estoy intentando simplificar pero nada

bgnumis

Hola,

Creo que así debería funcionar, el problema que tengo es que al rodarlo no me aparecen los valores de la tabla con el echo. ¿dónde podría estar el error?

Código (sql) [Seleccionar]



<?php

$busca
="";
$busca=$_GET['busca'];
$conexion=mysql_connect("localhost","osdsd","@dsfd") or die("Problemas en la conexion");
mysql_select_db("dsddef",$conexion) or die("Problemas en la selección de la base de datos");  

if(
$busca!=""){
  $busqueda=mysql_query("
  SELECT c.Oficina, c.telefono, c.ofi , a.fechavisita, a.ofi 

FROM oficinas c  

LEFT OUTER JOIN 

(SELECT registrovisitas.ofi AS A max(cast(STR_TO_DATE(registrovisitas.fechavisita, '%d/%m/%Y'))) AS date
                                                      
                                                      
GROUP BY registrovisitas.ofi AS SL FROM registrovisitas
                                                    
                                          
                                          ON (c.ofi=a.ofi)


WHERE c.Oficina LIKE '%"
.$busca."%' OR c.ofi LIKE '%".$busca."%' )") ;   

 
?>





<table width="1054"  border="1" align="left">
  <tr>

    <td>Oficina</td>
    <td>Telefono</td>
    <td>ofi</td>
<td>fecha</td>
      <td>Direcci&oacute;n</td>
        <td>CP</td>
          <td>Municipio</td>
            <td>Provincia</td>
              <td>CCAA</td>
               <td>DDR</td>
               <td>Enlace a Ofi</td>
               <td>Registrar</td>

  </tr>


  <?php
  

  
  
  
while($muestra=@mysql_fetch_array($busqueda)){
    echo '<tr>';
  echo '<td>'.$muestra['1'].'</td>';
  
   
 echo 
'<td>'.$muestra['ofi'].'</td>';
echo '<td>'.$muestra['3'].'</td>'
    
   
 

  


echo '<td><a href="oficinaaconsultartres.php?id='.$muestra['ofi'].'">','<strong>Ir a Oficina</strong>','</a></td>';

echo 
'<td><a href="principal.php?id='.$muestra['ofi'].'">','<strong>Ir a Registrar</strong>','</a></td>';

  }
    }


 
?>


</table>




Hadess_inf

Tu consulta esta toda desordenada, ahí esta tu error, el group by esta antes del from ... etc ...

Saludos.

bgnumis

Muchas. Estoy bloqueado con esto. Me he comprado [W._Jason_Gilmore]_Beginning_PHP_and_MySQL. Te digo esto porque quiero aprender.

Lo intento, de verdad, pero podrías ayudarme con el orden, no consigo que ruede

bgnumis

No me funciona aún, pero después de leer mil. Creo que ya lo entiendo. Ozu, Cuando lo consiga lo pongo