Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    menu con DIV multipli & query

    scusate ma non sapevo come chiamare questo 3D..

    in sostanza sto chiedendo una consulenza perchè probabilmente quello che vorrei fare non si può fare..
    sto facendo dei menu a comparsa con i div, e fin qui tutto ok.. rendo dinamiche le "voci" facendo una query, e anche qui tutto ok.
    MA. siccome sono 5 e tutte hanno una query tipo
    select * from tabella where campo = 1
    il secondo menu è
    select * from tabella where campo = 2 e così via

    c'è modo di fare una sola query, ed estrapolare da quella solo i risultati che mi interessano per quel menu.. con le mie conoscenze non è possibile, sennò nemmeno lo chiedevo , ma forse gli ESPERTI ne sanno più di me.. credevo le subquery ma vedendo un po' sembra non c'entrino molto..

    grazie in anticipo per ogni aiuto..

  2. #2

    Re

    è assolutamente possibile, fai la query per tutti mettendo il risultato in un Array, poi fai un ciclo su questo Array e dentro questo ciclo usi switch per condizionare la creazione d'ogni singolo menu. Mettiamo che $array già contiene il risultato della query:

    Codice PHP:
    foreach ( $array as $runArray )
    {
      switch ( 
    $runArray["campo"] )
      {
        case 
    1:
        
    /* crei menu 1 */
        
    break ;

        case 
    2:
        
    /* crei menu 2 */
        
    break;

        case 
    n:
        
    /* crei menu n */
        
    break;
      }

    Webmaster sitoesitiweb.it

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    chapeau..
    intanto ti ringrazio della risposta.. mi studio un po' la cosa e ti faccio sapere..

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ..sono arenato..
    non so cosa mettere all'interno dei case perchè in realtà il mio array devo "distribuirlo" tutto nella pagina mentre i "case" dovrebbero servire, come gli if, a dichiarare condizioni..
    quello che dovrei fare io è tipo


    Codice PHP:
    //faccio il mio array totale
    foreach ( $categorie as $runArray )
    {
      switch ( 
    $runArray["categoria"] )
      {
        case 
    1:
        
    /* tutte le categorie con il campo id = 1 */
        
    break ;

        case 
    2:
        
    /* tutte le categorie con il campo id = 2 */
        
    break;

      }

    ma per le mie umili conoscenze dovrei fare altre query e starei daccapo..
    grazie comunque per la disponibilità..

  5. #5

    Re

    ma tu non devi fare niente più, come ti avevo spiegato tu nell'array, cioè nella query ti devi prendere tutti i record, cioè tutte le categorie, poi dove categoria = 1 riempirai una variabile che appartiene alla tendina 1, e così via, e poi metti queste stringhe dove dovranno esserci le tendine.

    Codice PHP:
    foreach ( $Array as $runArray )
    {
      switch ( 
    $runArray["categoria"] )
      {
        case 
    1:
        
    $tendina_1 .= "<div>".$runArray["nome"]."</div> \n" ;
        break ;

        case 
    2:
        
    $tendina_2 .= "<div>".$runArray["nome"]."</div> \n" ;
        break;

      }

    non so se sai che .= è la stessa cosa che dire $peppe = $peppe + "altro contenuto"
    A questo punto avresti i contenuti d'ogni tendina nela variabile $tendina_corrispondente quindi faresti:

    Codice PHP:
    <?php echo $tendina_1 ?>
    e così via. Hai capito? Ovviamente questo che io ho scritto non è essattamente quello che devi fare tu, pero è quella l'idea.
    Webmaster sitoesitiweb.it

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    azz.. che figata!!
    peccato che mi stampa solo l'id_ref..
    cioè 1 1 1 1 1 1 1 1 1..
    sicuro sbaglio qualcosa io..
    Codice PHP:
    $result mysql_query("SELECT * FROM categorie ORDER BY id_ref ASC");

    while (
    $row mysql_fetch_array($resultMYSQL_ASSOC)) {
        foreach ( 
    $row as $runArray )
    {
      switch ( 
    $runArray["id_ref"] )
      {
        case 
    1:
        
    /* crei menu 1 */
        
    $tendina_1 .= "<ul>".$runArray["categoria"]."[/list]\n" 
        break ;

        case 
    2:
        
    /* crei menu 2 */
        
    $tendina_2 .= "<ul>".$runArray["categoria"]."[/list]\n" ;
        break;

        case 
    3:
        
    /* crei menu 2 */
        
    $tendina_3 .= "<ul>".$runArray["categoria"]."[/list]\n" ;
        break;
        
        case 
    4:
        
    /* crei menu 2 */
        
    $tendina_4 .= "<ul>".$runArray["categoria"]."[/list]\n" ;
        break;

        
        
      }
    }
        
    }
    echo 
    $tendina_1;
    echo 
    $tendina_2;
    echo 
    $tendina_3;
    echo 
    $tendina_4
    ah!!! per esempio di record con id_ref, che uso perchè collegato ad un'altra tabella, sono 4 mentre me ne stampa 11!!
    della categoria 4 me ne stampa 4 mentre i record sono 3.. :master:

    grazie comunque per l'aiuto finora dato..

  7. #7

    Re

    Non funziona perchè è un algoritmo sbagliato, prova così:

    Codice PHP:
    $result mysql_query("SELECT * FROM categorie ORDER BY id_ref ASC");

    while (
    $row mysql_fetch_array($resultMYSQL_ASSOC)) {
    {
      switch ( 
    $row["id_ref"] )
      {
        case 
    1:
        
    /* crei menu 1 */
        
    $tendina_1 .= "<ul>".$row["categoria"]."[/list]\n" ;
        break ;

        case 
    2:
        
    /* crei menu 2 */
        
    $tendina_2 .= "<ul>".$row["categoria"]."[/list]\n" ;
        break;

        case 
    3:
        
    /* crei menu 2 */
        
    $tendina_3 .= "<ul>".$row["categoria"]."[/list]\n" ;
        break;
        
        case 
    4:
        
    /* crei menu 2 */
        
    $tendina_4 .= "<ul>".$row["categoria"]."[/list]\n" ;
        break;
      }  
    }

    echo 
    $tendina_1
    Webmaster sitoesitiweb.it

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    spettacolare!!
    grazie tante..

  9. #9

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.