Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301

    interrogare tabella con una sola query

    ciao a tutti

    io ho una tabella strutturata cosi

    id | categoria | Pid
    1 | padre 1 | 0
    2 | padre 2 | 0
    3 | figlio 1 di 1 | 1
    4 | figlio 2 di 1 | 1
    5 | figlio 1 di 2 | 2
    6 | figlio 2 di 2 | 2


    come faccio ad interrogare questa tabella con una sola query

    ed ottenere in stampa

    padre 1
    figlio 1
    figlio 2
    padre 2
    figlio 1
    figlio 2

    avendo molte categorie mi sono reso conto che due query non davvero eccessive
    parlo almeno di 200 padri
    più di 500 figli per padre

    ho provato a cercare tutorial ma non ho trovato molto sulla interrogazone multipla .....

    grazie in anticipo
    /* No Comment Please */

  2. #2
    potresti effettuare la query e ricostruirti tutto in un array

    codice:
    $menu = array();
    $result = mysql_query("SELECT id, categoria, pid FROM tabella");
    while(list($id, $categoria, $pid) = mysql_fetch_row($result)) {
         $menu[$pid][$id] = $categoria;
    }
    e poi gestirti l'array
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    questo uso di list mi è davvero nuovo

    ma dove le imparate tutte queste cose


    ci avevo pensato anche io e mi ero fatto anche una funzioncina cosi

    function db_res_to_array($result){
    $res_array = array();

    for ($ii=0; $row = @mysql_fetch_assoc($result); $ii++){
    $res_array[$ii] = $row;
    }

    return $res_array;


    proverò il tuo metodo,

    tuttavia in alcuni 3d ho trovato questo:

    SELECT tab1.id as IDpadre, tab1.nome as padre, tab2.id as IDfiglio,tab2.nome as figlio from TABELLA as tab1 join TABELLA as tab2 on(tab1.id=tab2.pid or (tab1.pid=0 and tab1.id=tab2.id)) order by IDpadre,IDfiglio;

    ha dire la verità non ci ho capito molto ma dovrebbe funzionare.....solo che non so come prelevare i dati per la stampa .....

    potete aiutarmi????????

    P.S - dove posso trovare tutorial del genere in ITALIANO
    ( ovviamente se ne esitono )

    grazie ciao
    /* No Comment Please */

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    aiuto come gestico l'array ??
    /* No Comment Please */

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    Ottengo questo

    Array[1]
    Array[2]
    Array[3]
    Array[4]
    Array[6]
    Array[8]
    Array[9]
    Array[25]
    Array[29]
    Array[30]
    Array[31]
    Array[32]
    Array[33]
    Array[34]
    Array[35]
    Array[36]
    Array[37]
    Array[38]
    Array[39]
    Array[40]
    Array[41]
    Array[42]
    Array[43]
    Array[44]


    come faccio ad ottenere l'elenco in ordine?
    /* No Comment Please */

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    Ottengo lo stesso risultato della mia funzione....

    Come faccio ad ordinarli senza eseguire un'altra query?

    /* No Comment Please */

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    Nessuno può aiutarmi??
    /* No Comment Please */

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    potresti effettuare la query e ricostruirti tutto in un array

    code:
    $menu = array();
    $result = mysql_query("SELECT id, categoria, pid FROM tabella");
    while(list($id, $categoria, $pid) = mysql_fetch_row($result)) {
    $menu[$pid][$id] = $categoria;
    }



    e poi gestirti l'array
    ma come si gestiche l'array in questo caso????
    /* No Comment Please */

  9. #9
    in effetti dopo aver postato ho notato che avevo capito male
    purtroppo, così come è impostato, è impossibile distinguere i padri dai figli
    dovresti creare due tabelle

    codice:
    padri
    +----------+------+
    | id_padre | nome |
    +----------+------+
    
    figli
    +-----------+----------+------+
    | id_figlio | id_padre | nome | 
    +-----------+----------+------+
    oppure tre tabelle
    codice:
    padri
    +----------+------+
    | id_padre | nome |
    +----------+------+
    
    figli
    +-----------+------+
    | id_figlio | nome |
    +-----------+------+
    
    relazioni
    +----+----------+-----------+
    | id | id_padre | id_figlio |
    +----+----------+-----------+
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

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.