Foros del Web » Programando para Internet » PHP »

busqueda entre dos tablas

Estas en el tema de busqueda entre dos tablas en el foro de PHP en Foros del Web. Hola a todos, soy nuevo en usar php y mysql y estoy enfrentando un gran reto y solicito de su gran ayuda: el problema es ...
  #1 (permalink)  
Antiguo 25/03/2006, 23:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
busqueda entre dos tablas

Hola a todos, soy nuevo en usar php y mysql y estoy enfrentando un gran reto y solicito de su gran ayuda:

el problema es el siguiente, tengo una base de datos que tienen dos tablas con campos diferentes entre si, la tabla A con 2000 registros y la tabla B con cien mil(100,000), lo aue debo hacer es:
1. colocar el titulo de los campos de la tabla B
2. tomar de la tabla A el primer registro del campo1 y la primer letra del campo2 y asignarlo a una variable "X".
3. de la variable "X" realizar una busquedaen la tabla B y mostrar las coincidencias.
4. tomar el segundo registro de la tabla A.... se repiten los pasos 2, 3 y 4 hasta llegar al registro 2000 de la tabla A.

tengo este codigo pero no me funciona alguien me puede ayudar,gracias... mi correo es [email protected] gracias

:::::::::::::CODIGO:::::::::


<?php



// By PIKY
//Conectarse a la Base de Datos
//


$link = mysql_connect("localhost", "root", "");
mysql_select_db("audit_ctas", $link);
$result = mysql_query("SELECT ape1,ape2 FROM plantilla", $link);
$inicial = substr($row["ape2"], 1, 1);
$paterno = $row["ape1"];
$dato = $paterno." ".$inicial;

if ($row = mysql_fetch_array($result)){

echo "<center>Busqueda utilizando la plantilla al 16032006<p>Fecha de Query :".$fecha."<p><table width=100% border=1 cellpadding=0 cellspacing=0> \n";
echo "<tr bgcolor=#CCCCCC>";
echo " <td width=35>";
echo " <div align=center><strong>#EMP</strong></div></td>";
echo " <td width=130> ";
echo " <div align=center><strong>Nombre de Usuario</strong></div></td>";
echo " <td width=153> ";
echo " <div align=center><strong>Area y/o Suc.</strong></div></td>";
echo " <td width=60> ";
echo " <div align=center><strong>Usr SIBA</strong></div></td>";
echo " <td width=50> ";
echo " <div align=center><strong>Hora</strong></div></td>";
echo " <td width=55> ";
echo " <div align=center><strong>Fecha</strong></div></td>";
echo " <td width=50> ";
echo " <div align=center><strong>No. Cta.</strong></div></td>";
echo " <td width=180> ";
echo " <div align=center><strong>Nom. Prop. Cta.</strong></div></td>";
echo " <td width=130> ";
echo " <div align=center><strong>Producto</strong></div></td></tr> \n";


//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
echo "<td>$field1->name</td> \n";
}
echo "</tr> \n";
do
{
//AQUI PUEDE ESTAR EL QUERY A LA TABLA DE AUDITORIA Y MODIFICAR LA SALIDA
$result_1 = mysql_query("SELECT * FROM auditoria WHERE nomb_prop_cta LIKE %$dato% AND nomb_usr_siba LIKE %$dato% AND fecha_con_cta => '2006-02-01' AND fecha_con_cta <= '2006-02-28' ORDER BY fecha_con_cta", $link);
$row1 = mysql_fetch_row($result_1);

echo "<tr> \n";
echo "<tr> ";
echo " <td width=35>".$row1["no_emp"]."</td>";
echo " <td width=130>".$row1["nomb_usr_siba"]."</td>";
echo " <td width=153>".$row1["sucursal"]."</td>";
echo " <td width=60>".$row1["usr_siba"]."</td>";
echo " <td width=50>".$row1["hora_con_cta"]."</td>";
echo " <td width=55>".$row1["fecha_con_cta"]."</td>";
echo " <td width=50>".$row1["no_cta"]."</td>";
echo " <td width=180>".$row1["nomb_prop_cta"]."</td>";
echo " <td width=130>".$row1["producto"]."</td>";
echo "</tr> \n";
}

while ($row = mysql_fetch_array($result));
mysql_close($link);
echo "</table></center> \n";
echo "<p><P><center>Deseas correr de nuevo el query? Click </center> \n";

}
else
{

echo "<center>¡ No se ha encontrado ningún registro en la Base de datos plantilla!";

}
?>
  #2 (permalink)  
Antiguo 26/03/2006, 02:47
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 15 años, 8 meses
Puntos: 0
Hola, mira, para eso podrias usar SQL como LEFT OUTER JOIN, ahora no se si con sql, podes tomar la primera letra de un campo de la bd eso no se como hacerlo.
Te doy un ejemplo

Tengo las siguientes tablas

DVD
id_dvd
nombre
id_precio

---------
DVD_PRECIOS
id_precio
precio

Ahora como a los precios yo los cargo desde una parte, para armar la lista d e precios, ya los dvd's les asigno uno u otro segun un criterio diferente, para mostrar un listado de los dvd con los precios, haria el siguiente SQL

$sql="SELECT d.* FROM dvd d LEFT OUTER JOIN dvd_precio dp ON d.id_dvd=dp.id_precio";

Con esto haciendo un while($row=mysql_fetch_array($resultado_sql))
Obtendriamos el precio del dvd en cuestion con solo colocar $row['precio']
Si llego a estar equivocado en la consulta por favor avisen, porque son las 5.46 am en argentina y solo pase por aca para revisar y termine contestando jajaja y hay mucho sueño para probar el escript.
Saludos, espero poder orientarte un poco.
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:55.