Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: unione di 2 tabelle

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    unione di 2 tabelle

    salve a tutti
    ho 2 tabelle così composte:

    TABELLA VIDEO
    ID | TITOLO | IMG | ATTIVA | DATA_INS

    TABELLA ALBUM
    ID | TITOLO | IMG | ATTIVA | DATA_INS

    devo unire e stampare tutti i record in ordine di data_inserimento con l'unica condizione che entrambi devono avere il campo attiva ='si'.
    Come non bastasse.. devo anche capire una volta stampati, se il record stampato appartiene alla tabella video o album (devo assegnare un icona ad ogni valore)

    Cè qualche soluzione?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select *,'album' as tabella from tabella_album where attiva = 'si'
    union
    select *,'video' from tabella_video where attiva = 'si'
    order by data_ins

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Certo che c'è:

    con MySQL 4 o superiore:

    SELECT * from tabella_album WHERE ATTIVA LIKE 'si'
    UNION ALL
    SELECT * from tabella_viddeo WHERE ATTIVA LIKE 'si'
    ORDER BY
    ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    ciao Ragazzi,
    grazie della risposta!
    Ho provato entrambe le soluzioni.. ma mi da' errore di sintassi.

    Vi posto la query:

    Codice PHP:
    $sql_album="SELECT * FROM photogallery_album WHERE attiva = 'si' UNION ALL SELECT * FROM video WHERE attiva = 'si' ORDER BY data_ins
    $result_album=mysql_query($sql_album);
    while(
    $d=mysql_fetch_array($result_album)){
      // come faccio a stabilire nella stampa dei record se è un album o un video? (devo metterci un icona sul record)

    grazie

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Nella prima riga mancano i doppi apici e il punto e virgola.

    La risposta alla riga commentata te l'ho già data nella query.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    ciao Nicola,
    allora io ho preso in mano ora la tua query:

    Codice PHP:
    $s="SELECT *,'album' AS tabella FROM photogallery_album WHERE attiva = 'si' UNION SELECT *,'video' FROM video WHERE attiva = 'si' ORDER BY data_ins";
    $r=mysql_query($s);
    while(
    $d=mysql_fetch_array($r)){
    echo 
    $d[titolo];

    Mi da' errore di sintassi.
    Poi però sinceramente scusa l'ignoranza.. ma non ho capito come fai a stabilire se il titolo del record fa parte della tabella video o album.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Immagino che le tabelle abbiano un numero differente di campi. In questo caso non puoi usare

    select *

    ma devi specificare i singoli campi dalle due tabelle in maniera che coincidano.

    Una volta resa funzionante la query vedrai come sapere la tabella di appartenenza del record.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Ciao Nicola,
    ho fatto come dici tu

    Codice PHP:
    $sql_album="SELECT titolo, id, img, 'album' AS tabella FROM photogallery_album WHERE attiva = 'si' UNION SELECT id, img, titolo, 'video' FROM video WHERE attiva = 'si' ORDER BY data_ins 
    Ho provato anche così:

    Codice PHP:
    $sql_album="SELECT photogallery_album.titolo, photogallery_album.id, photogallery_album.img, 'album' AS tabella FROM photogallery_album WHERE attiva = 'si' UNION SELECT video.id, video.img, video.titolo, 'video' FROM video WHERE attiva = 'si' ORDER BY data_ins 
    ma mi da' sempre errore di sintassi.
    Dove sbaglio?

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    La query mi sembra corretta.
    Che versione hai di mysql? Le union sono disponibili dalla versione 4.

    Fai una semplice

    select version() e controlla la tua versione.

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    PHP Version 5.1.6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.