elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección.


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Mostrar la fecha más reciente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar la fecha más reciente  (Leído 353 veces)
bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Mostrar la fecha más reciente
« en: 7 Marzo 2017, 10:41 »

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
  1.  
  2. <?php
  3.  
  4. $busca="";
  5. $busca=$_GET['busca'];
  6. $conexion=mysql_connect("localhost","oscarugt","@duende109109109") or die("Problemas en la conexion");
  7. mysql_select_db("ugtdef",$conexion) or die("Problemas en la selección de la base de datos");  
  8.  
  9. if($busca!=""){
  10.  
  11. $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."%'") ;
  12.  
  13.  
  14.  
  15.  
  16. ?>
  17.  
  18.  
  19.  
  20.  
  21. <table width="1054"  border="1" align="left">
  22.  <tr>
  23.  
  24.    <td>Oficina</td>
  25.    <td>Telefono</td>
  26.    <td>ofi</td>
  27.  
  28.      <td>Direcci&oacute;n</td>
  29.        <td>CP</td>
  30.          <td>Municipio</td>
  31.            <td>Provincia</td>
  32.              <td>CCAA</td>
  33.               <td>DDR</td>
  34.               <td>Enlace a Ofi</td>
  35.               <td>Registrar</td>
  36.  
  37.  </tr>
  38.  
  39.  
  40.  <?php
  41.  
  42.  
  43.  
  44.  
  45.  while($muestra=@mysql_fetch_array($busqueda)){
  46.  echo '<tr>';
  47.  echo '<td>'.$muestra['Oficina'].'</td>';
  48.  
  49.  echo '<td>'.'<a href="tel:+'.$muestra['telefono'].'">'.$muestra['telefono'].'</a>'.'</td>';    
  50. echo '<td>'.$muestra['ofi'].'</td>';
  51.  
  52.     echo '<td>'.$muestra['direccion'].'</td>';
  53.   echo '<td>'.$muestra['cp'].'</td>';
  54.     echo '<td>'.$muestra['Municipio'].'</td>';
  55.   echo '<td>'.$muestra['Provincia'].'</td>';
  56.     echo '<td>'.$muestra['CCAA'].'</td>';
  57.      echo '<td>'.$muestra['delegadoDR'].'</td>';
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. echo '<td><a href="oficinaaconsultartres.php?id='.$muestra['ofi'].'">','<strong>Ir a Oficina</strong>','</a></td>';
  65.  
  66. echo '<td><a href="principal.php?id='.$muestra['ofi'].'">','<strong>Ir a Registrar</strong>','</a></td>';
  67.  
  68.  }
  69.    }
  70.  
  71.  
  72. ?>
  73.  
  74. </table>
  75.  
  76.  


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.


En línea

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #1 en: 8 Marzo 2017, 08:04 »

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

De momento no lo he conseguido.


En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.020


Nueva Vida


Ver Perfil WWW
Re: Mostrar la fecha más reciente
« Respuesta #2 en: 8 Marzo 2017, 18:09 »

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

Código
  1. SELECT  T1.*, TMP.fecha
  2. 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 )
  3. WHERE T1.... /* condiciones */
« Última modificación: 8 Marzo 2017, 18:13 por Hadess_inf » En línea

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #3 en: 10 Marzo 2017, 10:01 »

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

Código
  1.  
  2.  
  3. SELECT
  4.    P.cp, P.ofi
  5. FROM
  6.    oficinas P
  7.  
  8. LEFT OUTER JOIN (SELECT S.ofi , MAX(CAST(STR_TO_DATE(fechavisita, '%d/%m/%Y') AS S FROM registrovisitas )  
  9.  
  10. ON P.ofi=S.ofi
  11.  
  12.  
  13.  



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

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #4 en: 10 Marzo 2017, 10:03 »

Intenté con esto pero tampo me iba

Código
  1.  
  2.  
  3. $busca="";
  4. $busca=$_GET['busca'];
  5. $conexion=mysql_connect("localhost","dddfst","ffff") or die("Problemas en la conexion");
  6. mysql_select_db("fff",$conexion) or die("Problemas en la selección de la base de datos");  
  7.  
  8. if($busca!=""){
  9.  $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 )
  10.  
  11. 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."%'") ;
  12.  
  13.  
  14.  
  15.  
  16. ?>
  17.  
  18.  
  19.  


Y estoy intentando simplificar pero nada
En línea

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #5 en: 10 Marzo 2017, 14:22 »

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
  1.  
  2.  
  3. <?php
  4.  
  5. $busca="";
  6. $busca=$_GET['busca'];
  7. $conexion=mysql_connect("localhost","osdsd","@dsfd") OR die("Problemas en la conexion");
  8. mysql_select_db("dsddef",$conexion) OR die("Problemas en la selección de la base de datos");  
  9.  
  10. IF($busca!=""){
  11.  $busqueda=mysql_query("
  12.  SELECT c.Oficina, c.telefono, c.ofi , a.fechavisita, a.ofi
  13.  
  14. FROM oficinas c  
  15.  
  16. LEFT OUTER JOIN
  17.  
  18. (SELECT registrovisitas.ofi AS A max(cast(STR_TO_DATE(registrovisitas.fechavisita, '%d/%m/%Y'))) AS date
  19.  
  20.  
  21. GROUP BY registrovisitas.ofi AS SL FROM registrovisitas
  22.  
  23.  
  24.                                          ON (c.ofi=a.ofi)
  25.  
  26.  
  27. WHERE c.Oficina LIKE '%".$busca."%' OR c.ofi LIKE '%".$busca."%' )") ;  
  28.  
  29. ?>
  30.  
  31.  
  32.  
  33.  
  34. <table width="1054"  border="1" align="left">
  35.  <tr>
  36.  
  37.    <td>Oficina</td>
  38.    <td>Telefono</td>
  39.    <td>ofi</td>
  40. <td>fecha</td>
  41.      <td>Direcci&oacute;n</td>
  42.        <td>CP</td>
  43.          <td>Municipio</td>
  44.            <td>Provincia</td>
  45.              <td>CCAA</td>
  46.               <td>DDR</td>
  47.               <td>Enlace a Ofi</td>
  48.               <td>Registrar</td>
  49.  
  50.  </tr>
  51.  
  52.  
  53.  <?php
  54.  
  55.  
  56.  
  57.  
  58.  while($muestra=@mysql_fetch_array($busqueda)){
  59.  echo '<tr>';
  60.  echo '<td>'.$muestra['1'].'</td>';
  61.  
  62.  
  63. echo '<td>'.$muestra['ofi'].'</td>';
  64. echo '<td>'.$muestra['3'].'</td>';
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72. echo '<td><a href="oficinaaconsultartres.php?id='.$muestra['ofi'].'">','<strong>Ir a Oficina</strong>','</a></td>';
  73.  
  74. echo '<td><a href="principal.php?id='.$muestra['ofi'].'">','<strong>Ir a Registrar</strong>','</a></td>';
  75.  
  76.  }
  77.    }
  78.  
  79.  
  80. ?>
  81.  
  82. </table>
  83.  
  84.  
  85.  
  86.  
En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.020


Nueva Vida


Ver Perfil WWW
Re: Mostrar la fecha más reciente
« Respuesta #6 en: 10 Marzo 2017, 15:53 »

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

Saludos.
En línea

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #7 en: 10 Marzo 2017, 22:33 »

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
En línea

bgnumis

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Mostrar la fecha más reciente
« Respuesta #8 en: 11 Marzo 2017, 12:12 »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mostrar fecha en C
Programación General
arbeluc 1 630 Último mensaje 24 Marzo 2004, 12:53
por AnKeR
Mostrar fecha actual en C
Programación C/C++
NelxoN 5 14,743 Último mensaje 27 Enero 2009, 00:22
por NelxoN
Mostrar kernel mas reciente en GRUB
GNU/Linux
nap-buf 1 1,469 Último mensaje 20 Marzo 2010, 19:05
por Osorpoca
ordenar registros, mostrar más reciente a más viejo
Bases de Datos
basickdagger 6 1,618 Último mensaje 22 Junio 2016, 08:25
por Pedro Ivan
Problema al mostrar fecha sin hora.
.NET
nolasco281 8 1,304 Último mensaje 16 Mayo 2015, 23:50
por nolasco281
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines