Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    148

    [MySQL]e[PHP] Query articolata

    Ciao a tutti,
    mi sento sempre più ignorante nonstante il tempo passi e le nozioni non mancano....ma non riesco a mettere in pratica quello studiato!
    Al momento ho questa form:
    Codice PHP:
    <html>
    <
    title>
    Pagina iniziale
    </title>
    <
    body>
    <
    form action="risultato.php" method="get">
    Cosa preferisci: <select name="tipo"> <option value="">Selezionane uno:
    </
    option>
    <
    option value="Appartamento">Appartamento</option>
    <
    option value="Villa">Villa</option>
    <
    option value="Cascina">Cascina</option>
    <
    option value="Capannone">Capannone</option>
    </
    select>

    <
    input type="hidden" name="Inviato" value="true" /> 
    <
    input type="submit" name="Invia" value="Invia!">
    </
    form>
    </
    body>
    </
    html
    e questa query di estrazione:
    Codice PHP:
    SELECT Immobili.TipoImmobili.ComuneImmobili.AcquistoImmobili.PrezzoImmobili.DescrizioneImmobili.IDImmagini.Id_ImmobiliImmagini.PercorsoImmagini.Flag FROM Immobili JOIN Immagini ON Immobili.ID Immagini.Id_Immobili  WHERE Immobili.Tipo LIKE '%$tipo%' 
    al momento estraggo i risultati selezionando il solo campo "Tipo", poniamo che volessi avere più possibilità di filtrare i risultati...esempio anche per Comune, Prezzo..eccetera..
    Come devo strutturare la query?
    Grazie a tutti

  2. #2
    dovrai costruire dinamicamente la stringa della query da eseguire a seconda dei dati passati così che non sarai vincolato dal completamento obbligatorio di ogni campo..

    se ad esempio hai disponibili per la ricerca i campi tipo,comune e prezzo e mettiamo caso che vuoi fare una ricerca esatta per ogni campo farai una cosa del genere:

    Codice PHP:
    $sql '
    SELECT 
            Immobili.Tipo, 
            Immobili.Comune, 
            Immobili.Acquisto, 
            Immobili.Prezzo, 
            Immobili.Descrizione, 
            Immobili.ID, 
            Immagini.Id_Immobili, 
            Immagini.Percorso, 
            Immagini.Flag 
    FROM Immobili 
    JOIN Immagini 
    ON Immobili.ID = Immagini.Id_Immobili  
    WHERE'
    ;

    if(
    $_POST['tipo']!=''){
            
    $sql .= 'Immobili.Tipo = '.$_POST['tipo'].' AND';
    }
    if(
    $_POST['comune']!=''){
            
    $sql .= 'Immobili.Comune = '.$_POST['comune'].' AND';
    }
    if(
    $_POST['tipo']!=''){
            
    $sql .= 'Immobili.Prezzo = '.$_POST['prezzo'].' AND';
    }

    $sql substr($sql,0,strlen($sql)-4); // questo serve a togliere l'ultima and che farebbe andare in errore la query 
    Ubuntu rulez!! :P

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    148
    Veramente molte grazie!
    Sei stato più che esaustivo!

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.