0% encontró este documento útil (0 votos)
6 vistas14 páginas

Unir Dos Tablas y Buscar Con PHP & MySQL BaulPHP

El documento explica cómo unir dos tablas en MySQL utilizando la sentencia INNER JOIN y realizar búsquedas en ellas con PHP. Se presentan ejemplos prácticos que incluyen la estructura de las tablas y consultas SQL para obtener resultados combinados. Además, se discute la importancia de optimizar consultas en bases de datos para mejorar la eficiencia en la gestión de información.

Cargado por

saulsotelossuas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas14 páginas

Unir Dos Tablas y Buscar Con PHP & MySQL BaulPHP

El documento explica cómo unir dos tablas en MySQL utilizando la sentencia INNER JOIN y realizar búsquedas en ellas con PHP. Se presentan ejemplos prácticos que incluyen la estructura de las tablas y consultas SQL para obtener resultados combinados. Además, se discute la importancia de optimizar consultas en bases de datos para mejorar la eficiencia en la gestión de información.

Cargado por

saulsotelossuas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

MYSQL La base de datos PHP Ejemplos

Unir dos tablas y buscar con PHP &


MySQL
Nestor Tapia Last Updated: 1 junio, 2018  6  1.684  4 minutos de lectura

5 / 5 ( 3 votos )

Unir dos tablas y buscar con PHP & MySQL. En esta ocasión nos enfocaremos
en realizar búsquedas en dos tablas unidas por la sentencia INNER JOIN por
defecto, y consiste en combinar y/o unificar cada fila de una tabla1 con cada
fila de la otra tabla2, filtrando las filas que cumplan una determinada condición
en común.

Por lo tanto, si deseamos realizar consultas en dos tablas es recomendable la


utilización de la sentencias JOIN.

¿Que hay dentro?

1 Unir dos tablas y buscar con PHP & MySQL


1.1 Ejemplo 01: Relacionar tablas con Inner Join
1.2 2. Ejemplo 2: Buscador PHP y MYSQL usando INNER JOIN y clausula
WHERE
1.2.1 Estructura del buscador INNER JOIN completo.
1.2.1.1 La Tabla Cursos
1.2.1.2 Tabla Pagos
1.2.1.3 Fichero conexion.php
1.2.1.4 Index.php
1.3 CONCLUSIÓN
1.4 DESCARGA

Unir dos tablas y buscar con PHP & MySQL


Sin embargo. Podemos utilizar la cláusula “WHERE” para usar el operador
“LIKE”a entregar
Las cookies nos ayudan y poder nuestros
realizar servicios.
búsquedas precisas
Al utilizar dentro
nuestros de lasacepta
servicios, dos tablas deuso
nuestro acuerdo
de cookies. Leer
a una columna declarado enMás
la cláusula WHERE.
Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 1/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Hagamos una breve explicación en el cual usaremos dos tablas una llamada
“ALUMNOS” y la otra tabla llamada “CURSOS” aplicaremos una consulta en
el cual explicaremos a continuación.

1. Ejemplo 01: Relacionar tablas con Inner Join


A) Tabla “Alumnos”, con la clave primaria “cod”

Tabla alumnos inner join

b) Tabla “Cursos”, con la clave primaria “id_curso”

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 2/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Aplicamos la consulta con la sentencia INNER JOIN

SELECT nombres, ape_paterno, ape_materno FROM alumnos


INNER JOIN cursos
WHERE alumnos.id_curso = cursos.id_curso

Resultado Final después de realizar la consulta SQL. Si observamos veremos


una tabla combinada donde hay columnas de las dos tablas relacionadas, tanto
de la tabla “alumnos” como de la tabla “cursos”. Esta unificación es posible
gracias a la sentencia INNER JOIN.

Por lo tanto. Esta presentación hace que la información sea más relevante a la
hora de tomar decisiones dentro de una organización.

Resultado consulta inner join

2. Ejemplo 2: Buscador PHP y MYSQL usando


INNER JOIN y clausula WHERE
Esta es la consulta que usaremos para este ejemplo, un poco grande pero
funcional para este ejemplo de buscador INEER JOIN.

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 3/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

$sqln=mysqli_query($conn, "SELECT t1.id_pago, t1.monto, t


t1 INNER JOIN curso t2 ON t1.id_curso=t2.id_curso
WHERE t2.nombre_curso LIKE '%$pbu%' order by t1.id_pago d
or die(mysqli_error());

Estructura del buscador INNER JOIN completo.


Base de datos y sus Tablas

Trabajaremos en una base de datos llamada “php_union” en la cual contendrá


2 tablas, Una llamada “cursos” y otra llamada “pagos”.

CREATE TABLE `curso` (


`id_curso` int(2) NOT NULL,
`codcur` varchar(20) DEFAULT NULL,
`nombre_curso` varchar(255) CHARACTER SET utf8 COLLATE
`duracion` varchar(120) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

--
-- Volcado de datos para la tabla `curso`
--

INSERT INTO `curso` (`id_curso`, `codcur`, `nombre_curso`


(1, '0001WORD', 'WORD', '3 SEMANAS'),
(2, '0002EXCEL', 'EXCEL', '3 SEMANAS'),
(3, '0003POWER', 'POWER POINT', '3 SEMANAS'),
(4, '0004PUBLI', 'PUBLISER', '3 SEMANAS'),
(5, '0005INTER', 'INTERNET', '2 SEMANAS'),
(6, '0006ACCE', 'ACCESS', '4 SEMANAS');

-- ------------------------------------------------------

CREATE TABLE `pagos` (


`id_pago` int(3) NOT NULL,
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
`id_curso` int(11) DEFAULT NULL,
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 4/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

`monto` decimal(7,2) DEFAULT NULL,


`fecha` date DEFAULT NULL,
`cantidad` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

--
-- Volcado de datos para la tabla `pagos`
--

INSERT INTO `pagos` (`id_pago`, `id_curso`, `monto`, `fec


(1, 1, '20.00', '2018-05-30', 1),
(2, 1, '30.00', '2018-05-31', 1),
(3, 2, '40.00', '2018-05-31', 1),
(4, 2, '100.00', '2018-05-31', 1),
(5, 3, '25.00', '2018-05-30', 1),
(6, 3, '50.00', '2018-05-31', 1),
(7, 4, '60.00', '2018-05-31', 1),
(8, 4, '80.00', '2018-05-31', 1),
(9, 5, '27.00', '2018-05-30', 1),
(10, 5, '49.00', '2018-05-31', 1),
(11, 6, '90.00', '2018-05-31', 1),
(12, 6, '90.00', '2018-05-31', 1);

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `curso`
--
ALTER TABLE `curso`
ADD PRIMARY KEY (`id_curso`);

--
-- Indices de la tabla `pagos`
--
ALTER TABLE `pagos`
ADD PRIMARY KEY (`id_pago`);
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 5/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `curso`
--
ALTER TABLE `curso`
MODIFY `id_curso` int(2) NOT NULL AUTO_INCREMENT, AUTO_
--
-- AUTO_INCREMENT de la tabla `pagos`
--
ALTER TABLE `pagos`
MODIFY `id_pago` int(3) NOT NULL AUTO_INCREMENT, AUTO_I

La Tabla Cursos

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 6/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Tabla Pagos

Fichero conexion.php

Este será encargado de realizar la conexión con el servidor

<?php
$servidor= "localhost";
$usuario= "root";
$password = "";
$nombreBD= "php_union";
?>

Index.php

Aquí se mostrara el formulario para realizar la búsqueda y también mostrara


resultados de la base de datos MySQL

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 7/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

<ul class="list-group">
<li class="list-group-item">
<form method="GET">
<div class="form-row align-items-center">
<div class="col-auto">
<label class="sr-only" for="inlineFormInput">Curso<
<input name="curso" type="text" class="form-control
<input name="buscar" type="hidden" class="form-cont
</div>

<div class="col-auto">
<button type="submit" class="btn btn-primary mb-2">
</div>
</div>
</form>
</li>

</ul>

El código PHP encargado de procesar la palabra clave enviada a través del


formulario

<?php
include('conexion.php');
$conn = new mysqli($servidor, $usuario, $password, $nombr
if ($conn->connect_error) {
die("la conexión ha fallado: " . $conn->connect_error
}

if(isset($_GET["curso"])){
$pbu=$_GET["curso"];
}

if(isset($_GET["buscar"])){
$sqln=mysqli_query($conn, "SELECT t1.id_pago, t1.monto, t
Las cookies nos ayudan} a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 8/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

?>

<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Curso</th>
<th scope="col">Monto</th>
<th scope="col">Cantidad</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<?php
if(isset($_GET["buscar"])){
$n=0;
while ($dato=mysqli_fetch_array($sqln))
{ $n++;

echo"<tbody>";
echo"<tr>";
echo"<th scope='row'>".$n."</th>";
echo"<td>".$dato['nombre_curso']."</td>";
echo"<td>".$dato['monto']."</td>";
echo"<td>".$dato['cantidad']."</td>";
echo"<td>".$dato['fecha']."</td>";
echo"</tr>";
echo" </tbody>";
}
}
?>

</table>

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 9/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Unir dos tablas y buscar con PHP & MySQL

CONCLUSIÓN
Hoy en día casi todo la información de una empresa y/o organización se
almacenan en una base de datos. Sin embargo, se puede utilizar varios
gestores de almacenamiento.

En este ejemplo estamos usando MySQL y lo que deseamos es optimizar los


resultados a través de una consulta SQL. Por lo tanto, estamos usando la
sentencia INNER JOIN para poder unir dos tablas y realizar una búsqueda
precisa.

Les dejare el ejemplo completo para que puedan descargar esta pequeña
muestra y que ustedes pueden modificar de acuerdo a sus necesidades.

Esta forma de realizar consultas es muy usada en la mayoría de programadores


Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
para lograr un trabajo eficiente.
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 10/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

DESCARGA

DESCARGAR CÓDIGO FUENTE

Descarga 156 Sistemas PHP & MySQL

 Descargar 156 Sistemas PHP & MySQL Completos:

$9.99 – Comprar

#Buscador Inner Join #Busqueda INNER JOIN

#Inner Join #inner join php

6 comentarios

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 11/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Mauricio Sosa
8 octubre, 2020 a las 1:20 pm

Buenos días Nestor. Antes que nada muchas gracias por compartir tus
conocimientos con los que estamos aprendiendo. Siempre construyen un
poquito más, para esclarecer dudas y nuevo conocimiento.
Quería hacerte una consulta.
Tengo un problema para mostrar los datos de dos tablas. Una tabla es de
categorías (category) y otra es de publicaciones (post).
En la misma página debo mostrar primero unos botones que muestran
cada categoría (y que el usuario puede editar con un CRUD) por lo tanto
aparecen de acuerdo a la creación del usuario (crea la categoría y aparece
el botón) y tendría que traer de allí el nombre de la categoría creada.

Y segundo, en la misma página inmediatamente abajo, por un id deben


aparecer los posts de cada categoría de acuerdo al #id de cada botón.
Esos post tienen información de otra tabla que los relaciona también por
categoría.

Problema: Puedo mostrar las categorías en los botones a través de una


función, pero al implementar la segunda función que trae los valores de la
segunda tabla todo desaparece. Las funciones individualmente traen y
muestran los datos correctamente. Pero no si las aplico en la misma
página.

Sabes si se puede implementar alguna función para esto?

Muchas gracias de antemano!


Saludos Cordiales desde España
Mauricio Sosa

Responder

Augusto V.
26 agosto, 2020 a las 3:34 am

Cordial saludo

Para qué usa el cuatro de texto oculto y el calor “v”?


Lo quité y veo que hace lo mismo.
Gracias

Responder

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 12/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

Luis Peña
23 agosto, 2020 a las 10:39 pm

Estimado Nestor:
Veo que eres excelente programador y, te felicito por la buena intensión
de colgar en tu sitio estos excelentes tutoriales. Tengo la siguiente
inquietud:
Tengo una pequeña base de datos para una biblioteca personal,
compuesta por una tabla principal y 4 tablas simples relacionadas con la
primera, osea, un sistema relacional. Pero, por mi desconocimiento, no se
como hacer el formulario de captura, con opciones de Select, para integrar
los de las otras tablas secundarias en la tabla principal. Dentro de Mysql sí
se puede ver y entrar datos con dichas relaciones. Pero me falta saber
como realizar el formulario de carga y el que recibe, osea, el de inserción,
en pocas palabras el CRUD.
Le paso el link de la base datos:
https://drive.google.com/file/d/1lkhtLWLbEYtHoFY5ZAAFML5kQWZCVBAw
/view?usp=sharing

Responder

Nestor Tapia
26 agosto, 2020 a las 5:53 am

Hola Luis
Ya vi las tablas y he visto que estan relacionadas.

Ahora, si deseas integrar las tablas secundarias a la principal a travez de


un select o varios select
Aquí te dejo un articulo de como recuperar datos de una tabla
dependiente a un select

https://www.baulphp.com/llenar-select-html-con-mysql-php-ejemplos/

De ese select solo debes de guardar la id de la tabla secundaria y


almacenarlo en la tabla principal llamada documentos.

Espero que esto te ayude, caso contrario puedes hacer mas consultas.

Responder

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 13/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP

ricardo
24 enero, 2020 a las 10:26 pm

amigo en donde haces la consulta para buscar la informacion en la base


de datos
t1 y t2 a que hacen referencia, es que ya trate de agregar mis valores de
mi tabla y me marca error precisamente en esa lina donde empieza la
consulta sql

Responder

Nestor Tapia
25 enero, 2020 a las 12:06 am

Hola ricardo,
t1 y t2 son alias que se le asignan a las tablas con el fin de minimizar las
consultas por ejemplo:

La tabla Pago se llamara o hace referencia a t1


La tabla curso se llamara o hace referencia a t2

Y esos nombres se llaman en la consulta para usar el inner Join

Espero haber despejado tus dudas.

Responder

Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 14/14

También podría gustarte