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

    [PHP & MySQL] Query con funzione matematica

    Ciao a tutti,
    ho un piccolo problema di comprensione...
    ho questa form che contiene questa select:
    Codice PHP:
    Prezzo<select name="prez"> <option value="">Qualsiasi</option>
    <
    option value="fino100000">Fino a 100.000€</option>
    <
    option value="+100000">Da 100.000€ a 200.000€</option>
    <
    option value="oltre200000">Oltre 200.000€</option>
    </
    select
    Per filtrare i dati dal db del campo prezzo avevo fatto questo:
    Codice PHP:
    $query_ricerca"SELECT Immobili.Tipo, Immobili.Comune, Immobili.Acquisto, Immobili.Prezzo, Immobili.Data_ins, Immobili.Descrizione, Immobili.ID, Immagini.Id_Immobili, Immagini.Percorso, Immagini.Flag FROM Immobili JOIN Immagini ON Immobili.ID = Immagini.Id_Immobili "

    if(
    $_GET['tipo'] != ''){ 
            
    $query_ricerca .= 'WHERE Immobili.Tipo LIKE %'$tipo .'% AND '

    if(
    $_GET['c'] != ''){ 
            
    $query_ricerca .= 'WHERE Immobili.Acquisto LIKE %'.$_GET['c'].'% AND '

    if(
    $_GET['prez'] != ''){
        if(
    $_GET['prez'] == "fino100000") {
            
    $query_ricerca .= 'WHERE Immobili.Prezzo <= 100000 AND ';
        }
        elseif(
    $_GET['prez'] == "+100000") {
            
    $query_ricerca .= 'WHERE Immobili.Prezzo > 100000 Immobili.Prezzo AND >= 200000 AND ';
        }

    $sql substr($query_ricerca,0,strlen($query_ricerca)-4); 
    Solo che ovviamente non funziona.
    Mi restituisce un errore di sintassi sql.
    Volevo chiedere, come faccio a filtrare i dati secondo un range di prezzi?
    Poi mi è sorto anche un altro dubbio, se nella form non seleziono nulla dovrei visualizzare tutto, ma non mi visualizza nulla, nemmeno un errore.
    Non so come fare per omettere
    Codice PHP:
    $sql substr($query_ricerca,0,strlen($query_ricerca)-4); 
    se non seleziono nulla.
    Grazie a tutti

  2. #2

  3. #3
    Credo che il tuo problema sia già nel php.
    Ai dati trasmessi tramite GET viene applicata la funzione urlencode() per renderli inseribili in una url.
    Ciò comporta la sostituzione di alcuni caratteri non ammessi (spazio) con altri (+) creando il problema che noti.
    Sostituisci ai vari $_GET[xxx] del tuo script i corrispondenti urldecode($_GET[xxx]).

    Poi c'è un altro problema: definisci la query come:
    $query_ricerca .= 'WHERE Immobili.Prezzo > 100000 Immobili.Prezzo AND >= 200000 AND ';
    Ma l' and di fine linea non ha nessuna espressione specificata.

    Forse ci sono anche altri problemi...
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

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.