Visualizzazione dei risultati da 1 a 7 su 7

Discussione: switch case... infame

  1. #1

    switch case... infame

    Salve ho un problema strano, con un semplice comando switch case, io ho una variabile che e composta da una sequenza di lettere (esempioabcd


    quindi ho usato questo comando:

    $miavar='abcd';

    switch ($miavar)
    {
    case 'a':
    <?
    $sqlA = mysql_query(" SELECT * FROM `a` WHERE Idfascicolo = $id ");
    while($vara = mysql_fetch_array($sqlA))
    {
    }
    ?>

    case 'b':
    <?
    $sqlB = mysql_query(" SELECT * FROM `b` WHERE Idfascicolo = $id ");
    while($varb = mysql_fetch_array($sqlB)) {

    } ?>



    case 'c':
    <? $sqlC = mysql_query(" SELECT * FROM `c` WHERE Idfascicolo = $id ");
    while($varc = mysql_fetch_array($sqlC)) {

    } ?>



    case 'd':

    <? $sqlD = mysql_query(" SELECT * FROM `d` WHERE Idfascicolo = $id ");
    while($vard = mysql_fetch_array($sqlD)) {
    }



    } ?>


    a ogni lettera deve fare una query richiesta, nel caso nella variabile ci stanno le lettere b e d deve fare le queyi dei casi b e d , solo che certe volte le fa' altre no, esiste un alternativa allo switch

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    metti un break alla fine di ogni blocco case, altrimenti li esegue tutti a partire da quello corrispondente.
    E la prossima volta leggiti meglio la documentazione.

  3. #3
    $miavar='abcd';

    Potrei sbagliarmi ma ,oltre che la mancanza del break a fine case, non riuscirai mai a fargli valutare una variabile simile. Se tu la inizializzi con una stringa case:switch valuterà la stringa non le lettere contenute in essa. Devi trovare il modo di valorizzare $miavar ogni volta (prima con "a", poi prende il valore b poi il valore c e via dicendo (tipo recupero valori in $_GET o $_POST).
    Es:
    Codice PHP:
    switch ($miavar){case 'a'
    Case:switch valuterà se il valore di miavar è "a", ma non troverà corrispondenza visto che miavar sarà valorizzata come stringa 'abcd'. Altra cosa, non capisco gli short tag interni al ciclo...quelli li apri all'inizio dello script e li chiudi alla fine, non ha senso usarli in quel modo.
    Es:
    Codice PHP:
    <?php 
    switch ($miavar) {     
    case 
    'a':          
           
    $sqlA mysql_query(" SELECT * FROM `a` WHERE Idfascicolo = $id ");
           while(
    $vara mysql_fetch_array($sqlA))     {
           
    //fai quel che ti serve
           
    }    
           break;
    //continua blocco valutazione fino in fondo
    }//chiudi blocco valutazione
    ?>//chiudi tag php
    In pratica, devi rivedere diverse cose.
    Fare o non fare....non c'è provare!

  4. #4
    Prendendo spunto dal titolo del topic io qui di infame vedo solamente il codice postato (tra l'altro senza TAG ...possibile che sia così difficile postare del codice all'interno dei tag PHP?!?!) e dubito fortemente che come affermi che "certe volte le fa' altre no". Credo più no che si!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Ringrazio tutti per l'aiuto prendo spunto e modifico...

    P.S. Satifal non vorrei essere polemico ma ti garantisco che il codice lavora , in modo strano ma lavora, poi ti ricordo che "domandare è lecito rispondere è cortesia" se ti infastidisce rispondere o partecipare alle discussione , non farlo... grazie!!!!

  6. #6
    Rispondere sarà anche cortesia, ma postare il codice in maniera umana negli appositi TAG è da regolamento e nonostante i tuoi vari post lo avessi fatto almeno una volta!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Grazie ho risolto sostituendo SWITCH CASE con IF ... e va' preciso

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.