Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056

    select query multiple per array

    Dunque,
    per realizzare un menù e tendine (finalmente ho trovato uno script da adattare) ho bisogno di creare degli array con le voci del menu.

    In pratica io ho due tabelle: la prima con le voci principali del menù, la seconda, relazionata, con le sottovoci.

    Le voci principali sono le lettere dell'alfabeto, le sottovoci nomi di autori ordinati per cognome.

    Ora io devo creare un array così:

    voci[0]=newArray("a", "Alberto Abert", "Giuseppe Adeoit", "daniela Aferta")
    voci[1]= newsArray("b", "renato Baniko", "Salvatore Bunifra")

    poi un array sempre della stessa tabella che mi prenda i link

    link[0]=newArray("/","www.albertoalbert.it, www.giuseppeadeoit.com

    etc etc

    Come caspita faccio le query?

    Non so farla nè per il primo tipo di array, nè per il secondo e così via..

    Cioè io potrei fare una prima query che mi crea gli array per le voci.
    Una seconda che mi crea gli array per i link..

    etc etc etc

    Ma come le faccio???

    Grazie

  2. #2
    uhmm forse mi sono perso qualche cosa, ma tu vorresti che al cambio della selezione del primo menù vengano cambiate le opzioni disponibili nel secondo, giusto?
    In tal caso non ti conviene farlo client-side, ad es. con javascript,
    e predefinire dei range di opzioni x il secondo menù per ciascuna opzione del primo?

    Perchè se prevedi delle query significa che vai a pescare da un database, e se lo fai con PHP ad ogni selezione del primo menù si dovrebbe ricaricare la pagina per riempire opportunamente il secondo menù - diventa scomodo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    si si lo faccio con javascript infatti...
    ho trovato uno script da modificare...
    però gli devo passare i dati...
    per passargli i dati ho bisogno che al caricamento della pagina venga effettuata una query al database che trovi quali sono i miei link del menu e sottomenu....

    Mi stavo giusto chiedendo come fare questa query per passare i dati a javascript che mi costruisce il menù!!

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    212
    +/-
    codice:
    <?php
    $conn = mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("html") or die(mysql_error());
    $sql = "SELECT sottomenu.nome, sottomenu.url, principale.nome FROM sottomenu LEFT JOIN principale ON sottomenu.idp = principale.id";
    $rs = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_array($rs)) {
        $voci[$row[2]][] = $row[0];
        $link[$row[2]][] = $row[1];
    }
    $i = 0;
    foreach($voci as $k => $v) {
        $var = 'voci[' . $i . ']=newArray("' . $k . '", ';
        foreach ($v as $kk => $vv) {
             $var .= '"' . $vv . '", ';
        }
        $var = substr($var, 0, -2);
        $var .= ")\n";
        print $var;
        $i++;
    }
    $i = 0;
    foreach($link as $k => $v) {
        $var = 'link[' . $i . ']=newArray("/", ';
        foreach ($v as $kk => $vv) {
             $var .= '"' . $vv . '", ';
        }
        $var = substr($var, 0, -2);
        $var .= ")\n";
        print $var;
        $i++;
    }
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    ci ho capito ben poco ma ci proverò :quipy:

    Cioè ho capit ola select...
    ma non mi è molto chiaro tutto quello che c'è dopo il foreach...

    in caso RiRompo qui...

    Grazie

  6. #6
    ah allora forse ho capito: il tuo cruccio è dover fare tante query tanti quante sono le voci del sottomenù? beh mi sa che non c'è soluzione. O popoli un unico array e fai una cernita via jscript o via PHP (con uno script che generi l'array js), oppure popoli n-array facendo fare n-query al db-server.

    Qui però fai fare parecchio lavoro al server: se l'elenco degli URL non viene aggiornato di frequente potresti fare un .js.php esterno: un php che genera gli array js, appunto, ma aggiornato "on regular basis" magari con una cron table, uno schedule.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    Originariamente inviato da lordzoster
    ah allora forse ho capito: il tuo cruccio è dover fare tante query tanti quante sono le voci del sottomenù? beh mi sa che non c'è soluzione. O popoli un unico array e fai una cernita via jscript o via PHP (con uno script che generi l'array js), oppure popoli n-array facendo fare n-query al db-server.

    Qui però fai fare parecchio lavoro al server: se l'elenco degli URL non viene aggiornato di frequente potresti fare un .js.php esterno: un php che genera gli array js, appunto, ma aggiornato "on regular basis" magari con una cron table, uno schedule.
    E la soluzione di kuba?

    In realtà potrei faer un pulsante nel back office che quando viene inserito un nuovo autore fa eseguire lo script che aggiorni il menù..
    che ne pensi???

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    mmh la soluzione di kuba non va bene perchè mi da come risultato

    voci[0]=newArray("Ackling", "a") voci[1]=newArray("Agnetti", "a") voci[2]=newArray("Andre", "a") voci[3]=newArray("Anne", "a") voci[4]=newArray("Tinguely", "t") voci[5]=newArray("Darboven", "d", "d") voci[6]=newArray("Fautrier", "f") voci[7]=newArray("Hamak", "h") voci[8]=newArray("Joseph", "j") voci[9]=newArray("Kaiser Vogel", "k") voci[10]=newArray("Mahoney", "m") voci[11]=newArray("O’Connor", "o") link[0] = newArray("/", "Madeline")


    Invece io ho bisogno che ogni LETTERA abbia uno e uno solo array composto da per prima cosa la lettera e poi tutte le altre voci che sarebbero le sottovoci...

    E l'array del link deve avere la stessa logica, cioè link0 sono i link delle voci dell'array voci[0]

    E così via..

    Purtroppo io non ho capito un bel niente di come modificare lo script di kuba..

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    212
    codice:
    CREATE TABLE `principale` (
      `id` int(11) NOT NULL auto_increment,
      `nome` varchar(10) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=4 ;
    
    INSERT INTO `principale` VALUES (1, 'a');
    INSERT INTO `principale` VALUES (2, 'b');
    INSERT INTO `principale` VALUES (3, 'c');
    
    
    CREATE TABLE `sottomenu` (
      `id` int(11) NOT NULL auto_increment,
      `nome` varchar(255) NOT NULL default '',
      `idp` int(11) NOT NULL default '0',
      `url` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=6 ;
    
    INSERT INTO `sottomenu` VALUES (1, 'Alberto Abert', 1, 'www.albertoalbert.it');
    INSERT INTO `sottomenu` VALUES (2, 'Giuseppe Adeoit', 1, 'www.giuseppeadeoit.com');
    INSERT INTO `sottomenu` VALUES (3, 'daniela Aferta', 1, '');
    INSERT INTO `sottomenu` VALUES (4, 'renato Baniko', 2, '');
    INSERT INTO `sottomenu` VALUES (5, 'Salvatore Bunifra', 2, '');
    
    <?php
    $conn = mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("html") or die(mysql_error());
    $sql = "SELECT sottomenu.nome, sottomenu.url, principale.nome FROM sottomenu LEFT JOIN principale ON sottomenu.idp = principale.id";
    $rs = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_array($rs)) {
        $voci[$row[2]][] = $row[0];
        $link[$row[2]][] = $row[1];
    }
    $i = 0;
    foreach($voci as $k => $v) {
        $var = 'voci[' . $i . ']=newArray("' . $k . '", ';;
        foreach ($v as $kk => $vv) {
             $var .= '"' . $vv . '", ';
        }
        $var = substr($var, 0, -2);
        $var .= ")\n";
        print $var;
        $i++;
    }
    $i = 0;
    foreach($link as $k => $v) {
        $var = 'link[' . $i . ']=newArray("/", ';;
        foreach ($v as $kk => $vv) {
             $var .= '"' . $vv . '", ';
        }
        $var = substr($var, 0, -2);
        $var .= ")\n";
        print $var;
        $i++;
    }
    ?>
    
    //risultato
    
    voci[0]=newArray("a", "Alberto Abert", "Giuseppe Adeoit", "daniela Aferta")
    voci[1]=newArray("b", "renato Baniko", "Salvatore Bunifra")
    link[0]=newArray("/", "www.albertoalbert.it", "www.giuseppeadeoit.com", "")
    link[1]=newArray("/", "", "")

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056
    ???

    quindi non ho capito...??

    Cmq rifaccio la tabella da capo usando il tuo codice...

    vediamo...

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.