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

Discussione: JOIN tra 2 tabelle

  1. #1

    JOIN tra 2 tabelle

    Allora ragazzi...vedo se riesco a spiegarmi per bene.
    io ho un db con due tabelle 'rubriche' e 'articoli' voglio cercare di fare una query che mi restituisca una serie di tabelle in HTML, tante quante sono le rubriche presenti.
    Questo è facile se non fosse che in ciascuna di queste tabelle dovranno esserci titolo e contenuto dell'ultimo articolo inserito(memorizzate in 'articoli').

    Ho cercato, assieme ad un amico di metter su questa query
    codice:
    Select a.sezione,a.sectionid,b.titolo,b.descrizione,b.id from rubriche as a INNER JOIN articoli as b ON b.sectionid = a.sectionid GROUP BY 'sectionid' ORDER BY b.id DESC
    Funge a metà perchè non mi restituisce gli ultimi articoli ma solo i primi.
    Ditemi un pò...

  2. #2
    Fanne due di query.
    codice:
    prima
    
    create temporary table temp
    Select a.sezione, a.sectionid,
    b.titolo, b.descrizione, b.id 
    from rubriche as a 
    INNER JOIN articoli as b ON b.sectionid = a.sectionid 
    ORDER BY b.id DESC
    
    seconda
    
    SELECT * FROM TEMP
    GROUP BY sectionid
    il raggruppamento prende il primo record che soddisfa la condizione. E' fatto per raggruppare (sum, count, avg, ecc....) non per scegliere record determinati. Ordinandoli al contrario raggiungi la condizione da te voluta.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ti ringrazio piero.mac però spiegami una cosa, io ora ho

    codice:
    $query = "CREATE temporary TABLE temp SELECT a.sezione,a.sectionid,b.titolo,b.descrizione,b.id from rubriche as a INNER JOIN articoli as b ON b.sectionid = a.sectionid GROUP BY 'sectionid' ORDER BY b.id DESC";
    
    $query1 = "SELECT * FROM TEMP GROUP BY sectionid";
    
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)) {
    blablabla
    }
    Questo andrebbe per la prima query ad esempio, ma per la seconda come faccio?

  4. #4
    sono due query.

    e non come hai interpretato tu.

    $query = "create ...

    mysql_query($query)

    $query1 = "select ...
    result = mysql_query($query1)
    while ....

    leggile per bene le due queries.... e non ci sono apici sui nomi di campo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Scusami ma non capisco...
    Ora le 2 query come le utilizzo per arrivare alla visualizzazione html?
    Io di solito ne uso una quindi è semplice arrivare al while, adesso che sono 2 come faccio?
    Potresti farmi un piccolo esempio gentilmente?

  6. #6
    Originariamente inviato da Kaesar83
    Scusami ma non capisco...
    Ora le 2 query come le utilizzo per arrivare alla visualizzazione html?
    Io di solito ne uso una quindi è semplice arrivare al while, adesso che sono 2 come faccio?
    Potresti farmi un piccolo esempio gentilmente?
    E' quanto ho fatto sinora.... almeno mi pare.
    codice:
    $query = "
             create temporary table temp
             Select a.sezione, a.sectionid,
             b.titolo, b.descrizione, b.id 
             from rubriche as a 
             INNER JOIN articoli as b ON b.sectionid = a.sectionid 
             ORDER BY b.id DESC ";
    
    mysql_query($query);
    
    $query1 = "SELECT * FROM TEMP 
               GROUP BY sectionid";
    
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result)) {
    blablabla
    }
    quando posti delle query dovresti cercare di mettere spazi ed impostarle sulla falsariga delle mie.... Evita di andare troppo a destra...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Boh, continuo a non capire, sarà per via dell'orario.
    Provo ad inserire ciò che tu mi hai inserito tra i tags code ma mi da un warning

    Cmq alla fine non mi realizza nulla, mi da il valore che inserisco nell'else "Non ci sono oggetti nel database"

  8. #8
    se hai un warning ...mettilo e metti la segnalazione di errore alle due query.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Si ma a prescindere dal warning che è questo:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL
    result resource in routine.php on line 10

    Come mai non va il tutto?

  10. #10
    Originariamente inviato da Kaesar83
    Si ma a prescindere dal warning che è questo:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL
    result resource in routine.php on line 10

    Come mai non va il tutto?
    perche' devi risolvere il problema del result resource non valido. che query c'e' prima della riga 10?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.