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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  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 6,254 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


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

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: 155


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

¿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.048


Nueva Vida


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

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 pm por Hadess_inf » En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


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

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: 155


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

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: 155


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

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


Nueva Vida


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

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: 155


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

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: 155


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

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
Como mostrar la fecha en un Text.
Programación Visual Basic
El_Marine 3 1,540 Último mensaje 9 Agosto 2006, 05:39 am
por sircid
Mostrar FECHA en la barra de inicio « 1 2 »
Windows
postrof 13 17,105 Último mensaje 19 Julio 2010, 16:13 pm
por noesmitipo
ordenar registros, mostrar más reciente a más viejo
Bases de Datos
basickdagger 6 7,898 Último mensaje 22 Junio 2016, 08:25 am
por Pedro Ivan
Problema al mostrar fecha sin hora.
.NET (C#, VB.NET, ASP)
nolasco281 8 8,174 Último mensaje 16 Mayo 2015, 23:50 pm
por nolasco281
¿Cómo seleccionar los registros con la fecha más reciente?
Bases de Datos
KateLibby 7 4,671 Último mensaje 27 Diciembre 2017, 19:16 pm
por XafiloX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines