Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Unir dos tablas mysql con las mismas descripciones exactas

Estas en el tema de Unir dos tablas mysql con las mismas descripciones exactas en el foro de PHP en Foros del Web. Buenas tardes, El problema que tengo es que trato de unir dos tablas en la misma base de datos con los mismos datos y no ...
  #1 (permalink)  
Antiguo 14/07/2019, 09:01
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 15 años
Puntos: 0
Exclamación Unir dos tablas mysql con las mismas descripciones exactas

Buenas tardes,

El problema que tengo es que trato de unir dos tablas en la misma base de datos con los mismos datos y no me los muestra, ya he intentado con los JOIN pero no se si estoy haciendo algo mal que al final del resultado no me los da...

El codigo completo es el siguiente:

Código PHP:
<?php 
    $base 
= new PDO('mysql:host=localhost; dbname=','','');
    
$base->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
    
$base->exec("SET CHARACTER SET utf8");

    
$buscar='';
    if(isset(
$_POST['buscar'])){
        
$buscar $_POST['buscar'];
    }
    
$sql="SELECT * FROM productosgeneral WHERE descripcionbreve LIKE '%".$buscar."%' LIMIT 5";
    
$resultado $base->query($sql);
    
$fila $resultado->fetch(PDO::FETCH_ASSOC);
    
$total count($fila);
    
$bss "Precio:&nbsp;";
    
$bs="&nbsp;BsS."
    
?>
<?php 
    
if($total>&& $buscar != ''){ ?>
    <div class="resultado">
<?php do{ ?>
<div class="resultado-q">
<?php 
            
        
echo"<h5>".$fila['descripcionbreve']."</h5>";
        echo
"<h5>".$bss.$fila['precioventa'].$bs."</h5>";
?>
    </div>
<?php 
    
}while($fila=$resultado->fetch(PDO::FETCH_ASSOC));
?>

<?php
    
}
    elseif(
$total>&& $buscar=='') echo "<div class='resultado'><h6>Realiza una Busqueda</h6></div>";
    else echo 
"<div class='resultado'><h6>No se encontraron resultados</h6></div>";
?>
es decir la tabla 1 se llama productosgeneral la cual tiene dos ítem descripcionbreve y precioventa.. con este codigo me los muestra perfectamente...

pero en esta misma búsqueda necesito que me agregue los datos de otra tabla llamada productosbasicos que también tiene los dos mismos ítems descripcionbreve y precioventa

si alguien me podría ayudar lo agradecería...
  #2 (permalink)  
Antiguo 14/07/2019, 22:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

No veo el JOIN en esa consulta... de cualquier forma, debes asignar nombres diferentes a los campos para poder obtenerlos, por ejemplo:

Código SQL:
Ver original
  1. SELECT t1.descrip, t1.precio, t2.descrip AS descrip2, t2.precio AS precio2
  2. FROM t1
  3. JOIN t2 ON t1.id = t2.id
  4. WHERE t1.descrip LIKE '%valor%' LIMIT 5
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/07/2019, 08:00
Avatar de Panino5001
Moderatroll
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.097
Antigüedad: 15 años, 3 meses
Puntos: 790
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Si tienen la misma estructura quizá te convenga usar union: http://mysql.conclase.net/curso/?sqlsen=union
  #4 (permalink)  
Antiguo 16/07/2019, 18:18
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 15 años
Puntos: 0
Pregunta Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Gracias por sus respuesta.

el echo es que tengo dos tablas

1 tabla productosgeneral

esta contiene 4 renglones

id, codigo, descripción, precioventa

2 tabla plomeria

esta contiene 4 renglones

id, codigo, descripción, precioventa


en el llamado a la base de datos coloco así...

Código PHP:
$sql="SELECT codigo, descripcion, precioventa * FROM productosgeneral, plomeria WHERE descripcion LIKE '%".$buscar."%' LIMIT 5"
supongo que estoy haciendo algo mal. por que no me funciona...

los join no los se usar por que como indico en la parte superior tengo exactamente los mismos campos en las dos tablas....
  #5 (permalink)  
Antiguo 16/07/2019, 23:20
 
Fecha de Ingreso: abril-2006
Mensajes: 290
Antigüedad: 13 años, 4 meses
Puntos: 52
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Cita:
Iniciado por juanmandi Ver Mensaje
Gracias por sus respuesta.

el echo es que tengo dos tablas

1 tabla productosgeneral

esta contiene 4 renglones

id, codigo, descripción, precioventa

2 tabla plomeria

esta contiene 4 renglones

id, codigo, descripción, precioventa


en el llamado a la base de datos coloco así...

Código PHP:
$sql="SELECT codigo, descripcion, precioventa * FROM productosgeneral, plomeria WHERE descripcion LIKE '%".$buscar."%' LIMIT 5"
supongo que estoy haciendo algo mal. por que no me funciona...

los join no los se usar por que como indico en la parte superior tengo exactamente los mismos campos en las dos tablas....
no te queda que usar JOIN, te manadaron un ejemplo arriba, aunque ese EJEMPLO es para cruzar TABLAS y lo que tu necesitas ES UNIRLAS
supongo que lo que quieres lograr es que si en una busqueda te retorne los Datos que coincidan en ambas tablas y te devuelva un ID o la descripción

tambien existe algo llamado UNION

Código web:
Ver original
  1. UNION
  2. UNION in MySQL is used to union multiple columns from different table into a single column. The structure of UNION query for selecting unique values is:
  3.  
  4. SELECT column_name(s) FROM table1
  5.  
  6. UNION
  7.  
  8. SELECT column_name(s) FROM table2;
  9.  
  10. And for selecting repeated values from columns is:
  11.  
  12. SELECT column_name(s) FROM table1
  13.  
  14. UNION ALL
  15.  
  16. SELECT column_name(s) FROM table2;
  17.  
  18. Now let us fetch the ID’s from our tables.

te sugiero usar UNION para que distingas de donde probienen los datos que retorna en caso de que QUieras crear un LINK al que lleve mas informacion

Código PHP:
Ver original
  1. $sql = "SELECT codigo, descripcion, precioventa,'general' AS tabla FROM productosgeneral WHERE descripcion LIKE '%".$buscar."%' LIMIT 5
  2. UNION
  3. SELECT codigo, descripcion, precioventa , 'plomeria' AS tabla FROM plomeria" WHERE descripcion LIKE '%".$buscar."%' LIMIT 5;

asi en el resultado te Tirara 10 elementos , pero bueno hay varias formas de hacer lo que quieres, pero debes de investigar por tu parte y no HAGAS COPY & PASTE
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #6 (permalink)  
Antiguo 17/07/2019, 09:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Por lo que estás mostrando, creo que los compañeros tienen razón, UNION es la opción que te devolverá resultados de ambas tablas. Analiza el último ejemplo de tuadmin, prácticamente debería funcionar, pero no copies y pegues sin haber analizado primero.

Por otra parte, me parece que una sola tabla de productos debería haber sido suficiente para tu proyecto, solo necesitabas agregar una columna para categoría y, seguramente, una tabla de categorías.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 17/07/2019, 09:25
Avatar de Panino5001
Moderatroll
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.097
Antigüedad: 15 años, 3 meses
Puntos: 790
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

No olvides añadir el modificador all (UNION ALL) si quieres mostrar todos los registros, aún los que posean los mismos datos (si no lo añades, esos registros se solaparán, como si usaras distinct).
  #8 (permalink)  
Antiguo 17/07/2019, 13:12
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 15 años
Puntos: 0
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Muchas gracias por la ayuda que me han prestado...
pues les comento que no soy programador ni nada por el estilo para mi esto es un hobby y estoy tratando de aprender..
Este codigo lo tome de una explicación del buscador en un video tutoría de youtube, no solo copie y pegue... todo funciona a la perfección y creo entender parte del codigo... de echo en una sola tabla me funciona bien...
el tema de por que diferentes tablas es por que el negocio (es mi negocio y estoy haciendo eso para mi negocio) tiene varios departamentos y lo que necesito es descargar las listas por departamento es decir plomería, eléctricos etc etc... por eso estoy usando varias tablas....

con respecto al union all yo los probé pero yo creo que mi gran problema es no saber usar los símbolos y las comas, es decir no se donde se coloca los símbolos y por eso no me funciona...


Código PHP:
$sql="SELECT codigo, descripcion, precioventa 'productosgeneral' AS productosgeneral FROM productosgeneral WHERE descripcion LIKE '%".$buscar."%' LIMIT 5 UNION ALL SELECT codigo, descripcion, precioventa 'plomeria' AS plomeria FROM plomeria WHERE descripcion LIKE '%".$buscar."%' LIMIT 5"
lo arme de la siguiente manera y el codigo no me da ningun tipo de respuesta el buscador solo queda pensando... supongo que es en comillas o comas que me estoy equivocando.... la verdad ya no es tanto la programación por que quizás he pensado otros medios como dice mi amigo en el comentario anterior puedo usar la misma tabla pero ya lo que me esta interesando es resolver el dilema de como unirlas por que he echo cuanto ejemplo hay en internet y ninguna me funciona (entiendo que por falta de conocimiento)
  #9 (permalink)  
Antiguo 17/07/2019, 15:16
 
Fecha de Ingreso: abril-2006
Mensajes: 290
Antigüedad: 13 años, 4 meses
Puntos: 52
Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Cita:
Iniciado por juanmandi Ver Mensaje
Muchas gracias por la ayuda que me han prestado...
pues les comento que no soy programador ni nada por el estilo para mi esto es un hobby y estoy tratando de aprender..
Este codigo lo tome de una explicación del buscador en un video tutoría de youtube, no solo copie y pegue... todo funciona a la perfección y creo entender parte del codigo... de echo en una sola tabla me funciona bien...
el tema de por que diferentes tablas es por que el negocio (es mi negocio y estoy haciendo eso para mi negocio) tiene varios departamentos y lo que necesito es descargar las listas por departamento es decir plomería, eléctricos etc etc... por eso estoy usando varias tablas....

con respecto al union all yo los probé pero yo creo que mi gran problema es no saber usar los símbolos y las comas, es decir no se donde se coloca los símbolos y por eso no me funciona...


Código PHP:
$sql="SELECT codigo, descripcion, precioventa 'productosgeneral' AS productosgeneral FROM productosgeneral WHERE descripcion LIKE '%".$buscar."%' LIMIT 5 UNION ALL SELECT codigo, descripcion, precioventa 'plomeria' AS plomeria FROM plomeria WHERE descripcion LIKE '%".$buscar."%' LIMIT 5"
lo arme de la siguiente manera y el codigo no me da ningun tipo de respuesta el buscador solo queda pensando... supongo que es en comillas o comas que me estoy equivocando.... la verdad ya no es tanto la programación por que quizás he pensado otros medios como dice mi amigo en el comentario anterior puedo usar la misma tabla pero ya lo que me esta interesando es resolver el dilema de como unirlas por que he echo cuanto ejemplo hay en internet y ninguna me funciona (entiendo que por falta de conocimiento)
Bueno entonces te queda un camino por recorrer, y creo que la mejor ayuda es darte los enlaces Donde estan FUNCIONES PHP Y Mysql

primero cuando trabajes con SQL o en este caso MYSQL, prueba antes de mesclarlo en el PHP dentro PHPMYADMIN o descargandote el programa para crear tablas, querys mysql etc.

si vees palabras que no entiendas por ser tecnicas, usa Google, si no sabes que hace el por ejemplo UNION , usa google para buscar, y para menejar programas como el WORKBENCH hay video tutoriales en youtube, velos

https://dev.mysql.com/downloads/workbench/

y para saber que hace cada funcion del CORE de php

https://www.php.net/{AQUI NOMBRE DE LA FUNCION}

y con respecto al error que tienes es por que Malinterpretaste el "AS" en mysql significa , que estas renombrando el Valor al nombre de una columna cualquiera

en todo caso
SELECT {Columnas o funciones} FROM {nombre Tablas} {Comandos Extras, WHERE,ORDER}


mira este enlace, aunque es en ingles te dara una idea por los graficos que USA

https://www.sqlshack.com/sql-union-o...-and-examples/
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #10 (permalink)  
Antiguo 18/07/2019, 16:20
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 15 años
Puntos: 0
De acuerdo Respuesta: Unir dos tablas mysql con las mismas descripciones exactas

Bueno porfin logre hacer el codigo final lo publicare por que en mis 4 días que llevo de búsqueda en todos las preguntas que han realizado aquí con el mismo objetivo.... si muy bien los invitan a estudiar etc etc etc pero a la final no llegan al resultado...

agradezco a los que escribieron sobre el tema y me invitaron a las paginas con ejemplos.

Coloco el link de donde pude conseguir la solución al problema para aquellos que están buscando una solución parecida a la mia.

https://es.stackoverflow.com/questio...ablas-en-la-bd

y en este caso mi codigo quedo de la siguiente manera:

Código PHP:
$sql="SELECT * FROM (SELECT * FROM productosgeneral UNION ALL SELECT *FROM plomeria) AS tablas WHERE tablas.descripcion LIKE '%".$buscar."%' LIMIT 10"
Gracias. y espero que le sirva a otros.

saludos.



La zona horaria es GMT -6. Ahora son las 23:51.