Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    come unire tre tabelle?

    ciao,
    non riesco a stampare il dato nome_corso di una tabella nidificata in una seconda tabella, nidificata in una terza tabella. Mi aiutate perfavore?

    a_iscrizioni

    id_iscrizioni int(4) No
    id_creacorsi int(4) Sì NULL
    -------------------------------
    a_creacorsi

    id_creacorsi int(4) No
    id_corsi int(4) Sì NULL
    -------------------------------
    a_corsi

    id_corsi int(4) No
    nome_corso

    questa è la query che non funziona:
    Codice PHP:
    <?
    $query
    ="SELECT a_iscrizioni.*, a_allievi.*, a_creacorsi.*, a_corsi.*
    FROM a_iscrizioni, a_allievi, a_creacorsi, a_corsi
    WHERE a_iscrizioni.id_allievi = a_allievi.id_allievi AND [B]a_iscrizioni.id_creacorsi.id_corsi = a_corsi.id_corsi[/B] ORDER BY a_iscrizioni.id_iscrizioni DESC"
    ;
    $ris_query=mysql_query($query$conn);
    while(
    $row=mysql_fetch_array($ris_query)){?>

    e questo è il dato che dovrebbe stamparmi:

    <?=$row['nome_corso']?>

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Prova a spiegare meglio quello che vorresti ottenere. Magari se posti la struttura completa di tutte le tabelle interessate sarà più facile aiutarti a realizzare la query. Inoltre, così come l'hai postata, la tua query dovrebbe restituire un errore visto il modo con cui hai concatenato tabelle/campi. Aggiungi (sempre) la segnalazione d'errore mysql_error() quando esegui la query.

  3. #3
    per non creare confusione ho levato quello che non mi serve:

    le tabelle sono:

    a_iscrizioni
    id_iscrizioni int(4) No
    id_creacorsi int(4) Sì NULL
    -------------------------------
    a_creacorsi
    id_creacorsi int(4) No
    id_corsi int(4) Sì NULL
    -------------------------------
    a_corsi
    id_corsi int(4) No
    nome_corso

    Codice PHP:
    <?
    $query
    ="SELECT a_iscrizioni.*, a_creacorsi.*, a_corsi.*
    FROM a_iscrizioni, a_creacorsi, a_corsi
    WHERE a_iscrizioni.id_creacorsi.id_corsi = a_corsi.id_corsi ORDER BY a_iscrizioni.id_iscrizioni DESC"
    ;
    $ris_query=mysql_query($query$conn);
    while(
    $row=mysql_fetch_array($ris_query)){?>
    vorrei che quando metto questo:
    <?=$row['nome_corso']?>

    mi uscisse a video il nome del corso scelto

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    A parte il fatto che come stavamo prima siamo rimasti pure adesso al livello di chiarezza... ma poi, scusa, ti costa così tanto aggiungere mysql_error() quando esegui la tua query? Prova e ti renderai conto da solo che il primo errore nasce proprio dalla query: a_iscrizioni.id_creacorsi.id_corsi = a_corsi.id_corsi, questo non ha senso.

  5. #5
    e infatti è proprio lì il problema lo so che non si fa in quel modo, l'ho messo solo per far vedere che quella è stata l'unica idea che mi è venuta pur constatando che è sbagliata, quer questo sto chiedendo aiuto, perchè non so come si fa.
    comunque ora aggiungo mysql_error()

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Posta la struttura COMPLETA delle tabelle interessate, serve a capire in che modo sono relazionati fra loro i dati.

    Aiutaci ad aiutarti...

  7. #7
    mi da questo errore:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

    che suppondo sia per il motivo che dicevamo prima

  8. #8
    ecco le tabelle complete:

    a_iscrizioni
    Campo Tipo Null Predefinito
    id_iscrizioni int(4) No
    id_agenti int(4) Sì NULL
    id_allievi int(4) Sì NULL
    id_creacorsi int(4) Sì NULL
    centro_allievo varchar(10) No centro
    prezzo int(7) Sì NULL
    data_iscrizione date Sì NULL
    acconto int(7) Sì NULL
    acconto_pagamento varchar(10) No contanti
    acconto_num_assegno varchar(20) Sì NULL
    acconto_fattura varchar(1) No F
    saldo int(7) Sì NULL
    saldo_pagamento varchar(10) No contanti
    saldo_num_assegno varchar(20) Sì NULL
    saldo_fattura
    ----------------------
    a_creacorsi
    Campo Tipo Null Predefinito
    id_creacorsi int(4) No
    id_strutture int(4) Sì NULL
    id_corsi int(4) Sì NULL
    id_centri int(4) Sì NULL
    luogo_corso varchar(20) Sì NULL
    data1_corso date Sì NULL
    data2_corso
    ----------------------
    a_corsi
    Campo Tipo Null Predefinito
    id_corsi int(4) No
    nome_corso

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Originariamente inviato da ufficio
    ecco le tabelle complete:

    a_iscrizioni
    Campo Tipo Null Predefinito
    id_iscrizioni int(4) No
    id_agenti int(4) Sì NULL
    id_allievi int(4) Sì NULL
    id_creacorsi int(4) Sì NULL (FK)
    centro_allievo varchar(10) No centro
    prezzo int(7) Sì NULL
    data_iscrizione date Sì NULL
    acconto int(7) Sì NULL
    acconto_pagamento varchar(10) No contanti
    acconto_num_assegno varchar(20) Sì NULL
    acconto_fattura varchar(1) No F
    saldo int(7) Sì NULL
    saldo_pagamento varchar(10) No contanti
    saldo_num_assegno varchar(20) Sì NULL
    saldo_fattura
    ----------------------
    a_creacorsi
    Campo Tipo Null Predefinito
    id_creacorsi int(4) No (FK)
    id_strutture int(4) Sì NULL
    id_corsi int(4) Sì NULL (FK)
    id_centri int(4) Sì NULL
    luogo_corso varchar(20) Sì NULL
    data1_corso date Sì NULL
    data2_corso
    ----------------------
    a_corsi
    Campo Tipo Null Predefinito
    id_corsi int(4) No (FK)
    nome_corso
    Nella speranza che i campi che ho evidenziato in rosso siano realmente delle chiavi esterne, potresti provare a comporre la query mettendo in relazione quei dati evidenziati.

    codice:
    SELECT * FROM a_iscrizioni i, a_creacorsi cc, a_corsi c
    WHERE i.id_creacorsi = cc.id_creacorsi AND cc.id_corsi = c.id_corsi
    sempre che abbia capito cosa vuoi ottenere in realtà...

  10. #10
    ho fatto così solo che ora non mi stampa più nulla:

    Codice PHP:
    <?
                                        $query
    ="SELECT a_iscrizioni.*, a_allievi.*, a_creacorsi.*, a_corsi.*
            FROM a_iscrizioni, a_allievi, a_creacorsi, a_corsi
            WHERE a_iscrizioni.id_allievi = a_allievi.id_allievi AND a_iscrizioni.id_creacorsi = a_creacorsi.id_creacorsi AND a_creacorsi.id_corsi = a_corsi.id_corsi ORDER BY a_iscrizioni.id_iscrizioni DESC" 
    or die(mysql_error()); 
                                        
    $ris_query=mysql_query($query$conn);
                                        while(
    $row=mysql_fetch_array($ris_query)){?>

    <tr>
        <td height="41"><span class="testo_grigio_bold"><a href="<?=$PHP_SELF?>?iscrizione=<?=$row[id_iscrizioni]?>&pagina=2">[img]../images/menu_triangolo.gif[/img]
          <?=$row['id_iscrizioni']?></a></span></td>
        <td align="right"><span class="testo_grigio_bold"><?=$row['nome_corso']?></span></td>
        <td></td>
        <td><span class="testo_grigio_bold"><?=$row['cognome']?></span></td>
          <td align="right"><span class="testo_grigio_bold"><?=$row['data_iscrizione']?></span></td>
         </tr>
          <tr>
        <td height="1" colspan="5" valign="top" bgcolor="BE743F"></td>
        </tr>
        <?
            
    }
    ?>

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.