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:
<?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ó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.
¿Con un inner join o left join funcionaría aunque tenga un like?
De momento no lo he conseguido.
Porque no hace un left join y agregas un max ¿?
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 */
Hola estoy intentando hacer el LEFT OUTER JOIN pero no hay manera, y leyendo sobre como montarlo no me aclaro
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.
Intenté con esto pero tampo me iba
$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
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?
<?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ó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>
Tu consulta esta toda desordenada, ahí esta tu error, el group by esta antes del from ... etc ...
Saludos.
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
No me funciona aún, pero después de leer mil. Creo que ya lo entiendo. Ozu, Cuando lo consiga lo pongo