Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    [PHP] si può fare lo switch

    salve
    questo è il codice in esame
    Codice PHP:
    if(empty($search) OR $search==" "){
    $query "SELECT * FROM quiz ";
    $avviso"Prelevati 10 quesiti in modo casuale";

    else{
    if(
    $search == "intruso"){
    $query"SELECT * FROM quiz WHERE MATCH (intruso) AGAINST ('$search' IN BOOLEAN MODE) ";
    }
    elseif(
    substr($search,0,4) == 'obj_'){
    $query"SELECT * FROM quiz WHERE MATCH (speciale) AGAINST ('$search' IN BOOLEAN MODE) ";
    }
    elseif(
    substr($search,0,4) == "cat_" OR substr($search,0,5) == "+cat_"){
    $searchstr_replace("cat_","",$search);

    $query"SELECT * FROM quiz WHERE MATCH (categoria) AGAINST ('$search' IN BOOLEAN MODE) ";
    }
    else{
    $query"SELECT * FROM quiz WHERE MATCH (categoria,domanda,speciale,ans1,ans2,ans3,ans4,intruso) AGAINST ('$search' IN BOOLEAN MODE) ";
    }
    $termine str_replace("+",""$search);
    $totmysql_num_rows(mysql_query($query));
    $avviso=" Prelevati $tot quesiti relativi a \"$termine\"";


    siccome non sono molto pratico di switch case
    volevo sapere si può applicare in questo caso e come si fa?

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    lo switch andrebbe applicato ad una variabile che viene testata più volte, in questo caso l'unica variabile "ridondante" è (substr($search,0,4)) quindi sarebbe superfluo l'uso di uno switch, ma se vuoi provare:
    Codice PHP:
    switch (espressione)
    {
      case 
    valore1:
        
    //codice da eseguire;
        
    break;
      case 
    valore2:
        
    //codice da eseguire;
        
    break;
      default:
        
    //eseguito se espressione non è nessuno dei valori dei case; (opzionale)

    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ho capito

  4. #4
    Mi permetto un altro consiglio.
    Dato che substr($search,0,4) lo usi, nel codice originale, enne volte, questo implica che i "cicli" per trovare la sotto stringa siano effettuati enne volte. Ok, si tratta di poca roba, ma immagina se questo tipo di operazione viene effettuata 2000 volte e impiegasse per ogni esecuzione mezzo secondo. Impiegherebbe 999,5 secondi "extra" per nulla.
    Se invece il risultato di substr($search,0,4) lo inserisci in una variabile (es $substring = substr($search,0,4)) e poi usi $substring nei vari if, userai solamente mezzo secondo, senza nessun "extra" inutile.

    In generale quindi, ogni volta che ti serve controllare enne volte il risultato di una identica operazione (semplice o complessa) è sempre meglio se il risultato lo salvi in una variabile e poi fai i test su questa variabile.


  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ok capito tranquillo i consigli son ben accetti

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.