Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Ciclo while e array_push

    Salve,
    vorrei risparmiare spazio (quindi meno codice) dalla creazione di tanti array quante query, vi spiego meglio. In una tabella ho dei dati salvati nome, cognome e categoria, in questo momento creo cinque query, una per categoria, dopo di che tramite il while, quindi per ogni query eseguita, mi compongo l'array:

    Codice PHP:
    $query_anziani mysqli_query($conn"SELECT * FROM tabella WHERE cat = 'anziani' ");
    $anziani= array();

    while (
    $queryFetch mysqli_fetch_array($queryMYSQLI_ASSOC)) {
    $cat1 = array (
    'nome' => $queryFetch['nome'],
    'cognome' => $queryFetch['cognome']
    );
    array_push($anziani$cat1);
    }

    //altri while.... 
    Faccio questo per ogni query ovviamente e quindi mi chiedevo se c'era un modo dove eseguo una sola query (quindi un solo while) successivamente nella composizione dell'array divido per categorie, esempio pratico:

    Codice PHP:
    $query mysqli_query($conn"SELECT * FROM tabella ");

    $categoria1= array();
    $categoria2= array();
    $categoria3= array();
    // altre categorie

    while ($queryFetch mysqli_fetch_array($queryMYSQLI_ASSOC)) {
    $cat1 = array (
    //tutti i nomi e cognomi con categoria = 'categoria1'
    'nome' => $queryFetch['nome'],
    'cognome' => $queryFetch['cognome']
    );
    array_push($categoria1$cat1);
    }

    $cat2 = array (
    //tutti i nomi e cognomi con categoria = 'categoria2'
    'nome' => $queryFetch['nome'],
    'cognome' => $queryFetch['cognome']
    );
    array_push($categoria2$cat1);
    }

    // continuo la compilazione degli array 
    Grazie anticipatamente

  2. #2

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Io intendevo lato php. Gli operatori logici nel mio caso a cosa servono? potresti fare un esempio?

  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Tu hai chiesto
    mi chiedevo se c'era un modo dove eseguo una sola query
    Se non è questa, qual'è?

    potresti fare un esempio?
    codice:
    ret = []
    query = "SELECT cat, dato1, dato2 FROM tabella WHERE cat = gatto OR cat = cane"
    while(row = fetch(query)) {
        ret[row[cat]][] = row
    }

  5. #5
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Quindi senza array_push?

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Se vuoi usare array_push invece dell'equivalente $array[] = ... è una tua scelta. Accomodati e fallo pure.

  7. #7
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Funziona.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.