Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ottimizzare una query?

  1. #1

    Ottimizzare una query?

    Buon giorno, volevo sapere come ottimizzare la mia query in base ad alcuni controlli che effettuo prima di eseguirla(la query).

    questo è il codice:
    codice:
    if($cod_immo=="" && $rapp_giuri==""){
    echo "Non puoi effettuare la ricerca senza riempire i campi!!";
    exit;
    }
    elseif(preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$cod_immo)
    || preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$rapp_giuri)){
    echo "Non puoi inserire questi caratteri per la tua ricerca!!";
    exit;
    }
    else{
    if($rapp_giuri!=""){
    $risultato = mysql_query("SELECT distinct AVV_RG,AVV_MATRICOLA,AVV_MSG FROM TABAVV0511 where AVV_RG ='$rapp_giuri'") or die ("Non è possibile eseguire la Select : " . mysql_error());
    }
    elseif($cod_immo!=""){
    $risultato = mysql_query("SELECT distinct AVV_RG,AVV_MATRICOLA,AVV_MSG FROM TABAVV0511 where AVV_MATRICOLA ='$cod_immo'") or die ("Non è possibile eseguire la Select : " . mysql_error());
    }
    elseif($rapp_giuri!="" && $cod_immo!=""){
    $risultato = mysql_query("SELECT distinct AVV_RG,AVV_MATRICOLA,AVV_MSG FROM TABAVV0511 where AVV_RG ='$rapp_giuri' AND AVV_MATRICOLA ='$cod_immo'") or die ("Non è possibile eseguire la Select : " . mysql_error());
    }
    }
    Quello che chiedo è,come posso evitare di scrivere sempre la select per intero?
    vorrei fare qualcosa di questo tipo:
    codice:
    $risultato = mysql_query("SELECT DISTINCT AVV_RG,AVV_MATRICOLA,AVV_MSG FROM TABAVV0511 ") or die ("Non è possibile eseguire la Select : " . mysql_error());
    //..inizio
    //if (controllo 1){
    $risultato.= (" where AVV_RG ='$rapp_giuri' ");
    }
    //elseif(controllo 2){
    $risultato.= (" where AVV_MATRICOLA ='$cod_immo' ");
    }
    //elseif(controllo 3){
    $risultato.= (" where AVV_RG ='$rapp_giuri' and AVV_MATRICOLA ='$cod_immo'");
    }
    //else{
    
    }
    //....fine
    Spero di essermi spiegato.Grazie mille...

  2. #2
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    Ti sei dato la risposta da solo!!
    scrivi inizialmente la che rimane sempre uguale:
    SelectQuery = "blablablablablablabla";
    poi in base alle condizioni scrivi il resto:
    WhereQuery = "blablabla"
    Infine ti concateni i campi:
    StrQuery = SelectQuery . WhereQuery;
    e la esegui.

  3. #3
    ok ti ringrazio però..la mia perplessità è che, se i due campi non sono valorizzati,la prima parte della query, viene sempre eseguita..
    codice:
    $risultato = mysql_query("SELECT DISTINCT AVV_RG,AVV_MATRICOLA,AVV_MSG FROM TABAVV0511 ") or die ("Non è possibile eseguire la Select : " . mysql_error());
    e poi non ho capito come concatenare ed eseguire
    "Infine ti concateni i campi: StrQuery = SelectQuery . WhereQuery;
    e la esegui."

    sicuramente io sbaglio qualche passaggio,se puoi cortesemente farmi vedere esplicitamente altrimenti mi resta il dubbio e ti faccio perdere tempo.

    grazie mille.

  4. #4
    potete aiutarmi per favore?

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.