Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Ricerca per fascia d'età

    Codice PHP:
    <ul>
    <?
    //Verifica i dati della form
    $NomeStr trim($_POST['Nome']);
    $Sesso trim($_POST['Sesso']);
    if (
    $Sesso=="M") {
    $M2 "t1.M = '1' AND ";
    } elseif (
    $Sesso=="F") {
    $F2 "t1.F = '1' AND ";
    }
    $Eta trim($_POST['Eta']);
    $Eta2 "t1.Eta LIKE '%$Eta%'";
    $Provincia trim($_POST['Provincia']);
    if (
    $Provincia!="Tutte") {
    $Provincia2 "AND t2.Provincia = '$Provincia'";
    }
    $Handicap trim($_POST['Handicap']);
    $Handicap2 "t1.Handicap = '$Handicap'";
    $Intervento trim($_POST['Intervento']);
    if (
    $Intervento!="Tutte") {
    $Intervento2 "AND t1.Area = '$Intervento'";
    }

    if (
    $NomeStr!="") {
    $where "t2.Nome LIKE '%$NomeStr%'";
    } else {
    $where "$M2 $F2 $Eta2 AND $Handicap2 $Intervento2 $Provincia2";
    }
    //Strutture
    $query "SELECT t2.ID as IDStruttRic, t2.Nome as NomeStruttRic, t2.Url as UrlStruttRic FROM strutture as t2 JOIN dati_strutt as t1 ON t2.ID = t1.Struttura WHERE $where ORDER BY t2.Nome";
    $result mysql_query($query$db);
    $Dati_Trovati mysql_num_rows($result);
    if (
    $Dati_Trovati==OR $Sesso=="" OR $Eta=="" OR $Handicap=="" OR $Intervento=="" OR $Provincia=="") {
    echo 
    "<center>
    [b]Non ci sono risultati[/b]



    <a href=\"javascript:history.back()\">Indietro</a>
    </center>"
    ;
    } else {
    while(
    $row mysql_fetch_array($result)) {
    $IDStruttRic $row["IDStruttRic"];
    $NomeStruttRic $row["NomeStruttRic"];
    $UrlStruttRic $row["UrlStruttRic"];

    //Disponibilità
    $query2 "SELECT * FROM disponibilita WHERE Struttura = '$IDStruttRic'";
    $result2 mysql_query($query2$db);
    $row2 mysql_fetch_array($result2);
    $TotalePosti $row2["Totale"];
    $LiberiPosti $row2["Liberi"];

    //Se l'url è indicato aggiunge il link altrimenti si linka alla pagina interna
    if ($UrlStrutt!="") {
    echo 
    "[*]<a href=\"$UrlStruttRic\" target=\"_blank\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    } else {
    echo 
    "[*]<a href=\"pag.php?Pag=struttura&Struttura=$IDStruttRic\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    }
    }

    }
    ?>[/list]
    Ho questo motore di ricerca che funziona abbastanza bene, anzi molto, mi è sorto un unico problema: nel campo del database t1.Eta posso avere come ipotesi tutte, Dai 18 in poi, oppure una fascia es. 0 - 6, nell'ultimo caso se l'utente inserisce 5 come faccio a fallo confrontare nell'intervallo? Thanks!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361
    splitta la stringa tramite il trattinto,
    converti i due elementi ottenuti in int

    e poi fai un if maggiore di numero basso and minore di numero alto

  3. #3
    Codice PHP:
    <ul>
    <?
    //Verifica i dati della form
    $NomeStr trim($_POST['Nome']);
    $Sesso trim($_POST['Sesso']);
    if (
    $Sesso=="M") {
    $M2 "t1.M = '1' AND ";
    } elseif (
    $Sesso=="F") {
    $F2 "t1.F = '1' AND ";
    }
    $Eta trim($_POST['Eta']);
    if (
    $Eta=="tutte" OR $Eta=="Dai 18 anni in poi") {
    $Eta2 "t1.Eta = '%$Eta%' AND";
    }
    $Provincia trim($_POST['Provincia']);
    if (
    $Provincia!="Tutte") {
    $Provincia2 "AND t2.Provincia = '$Provincia'";
    }
    $Handicap trim($_POST['Handicap']);
    $Handicap2 "t1.Handicap = '$Handicap'";
    $Intervento trim($_POST['Intervento']);
    if (
    $Intervento!="Tutte") {
    $Intervento2 "AND t1.Area = '$Intervento'";
    }

    if (
    $NomeStr!="") {
    $where "t2.Nome LIKE '%$NomeStr%'";
    } else {
    $where "$M2 $F2 $Eta2 $Handicap2 $Intervento2 $Provincia2";
    }
    //Strutture
    $query "SELECT t2.ID as IDStruttRic, t2.Nome as NomeStruttRic, t2.Url as UrlStruttRic, t1.Eta as EtaStrutt FROM strutture as t2 JOIN dati_strutt as t1 ON t2.ID = t1.Struttura WHERE $where ORDER BY t2.Nome";
    $result mysql_query($query$db);
    $Dati_Trovati mysql_num_rows($result);
    if (
    $Dati_Trovati==OR $Sesso=="" OR $Eta=="" OR $Handicap=="" OR $Intervento=="" OR $Provincia=="") {
    echo 
    "<center>
    [b]Non ci sono risultati[/b]



    <a href=\"javascript:history.back()\">Indietro</a>
    </center>"
    ;
    } else {
    while(
    $row mysql_fetch_array($result)) {
    $IDStruttRic $row["IDStruttRic"];
    $NomeStruttRic $row["NomeStruttRic"];
    $UrlStruttRic $row["UrlStruttRic"];
    $EtaStrutt $row["EtaStrutt"];
    if (
    $Eta!="tutte" AND $Eta!="Dai 18 anni in poi") {
    $Eta3 explode(" - ",$Eta);
    $min $Eta3[0];
    $max $Eta3[1];
    if ((
    $Eta $min OR $Eta $max) AND $NomeStr=="") {
    echo 
    "<center>
    [b]Non ci sono risultati[/b]



    <a href=\"javascript:history.back()\">Indietro</a>
    </center>"
    ;
    break;
    } elseif ((
    $Eta >= $min AND $Eta <= $max) OR $NomeStr!="") {
    //Disponibilità
    $query2 "SELECT * FROM disponibilita WHERE Struttura = '$IDStruttRic'";
    $result2 mysql_query($query2$db);
    $row2 mysql_fetch_array($result2);
    $TotalePosti $row2["Totale"];
    $LiberiPosti $row2["Liberi"];

    //Se l'url è indicato aggiunge il link altrimenti si linka alla pagina interna
    if ($UrlStrutt!="") {
    echo 
    "[*]<a href=\"$UrlStruttRic\" target=\"_blank\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    } else {
    echo 
    "[*]<a href=\"pag.php?Pag=struttura&Struttura=$IDStruttRic\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    }
    }
    }
    }

    }
    ?>[/list]
    Ho fatto così, ma o mi da' Non ci sono risultati o non esce niente.

  4. #4
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    prova facendo semplicemente un
    Codice PHP:
    if ($_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == 6)
    {
    $eta='1-6';
    }
    elseif (
    $_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == XOR $_POST['eta'] == 10 XOR $_POST['eta'] == 11 XOR $_POST['eta'] == 12 XOR $_POST['eta'] == 13)
    {
    $eta='7-13';
    }
    elseif (
    $_POST['eta'] == 14 XOR $_POST['eta'] == 15 XOR $_POST['eta'] == 16 XOR $_POST['eta'] == 17)
    {
    $eta='14-17';
    }
    elseif (
    $_POST['eta'] => 18)
    {
    $eta='dai 18 in poi';

    il 'tutte' non ho capito cosa sarebbe, ma hai capito no come dico che dovresti fare?

  5. #5
    E ho fatto come dicevi, no? tutte è semplicemente la stringa da cercare.

  6. #6
    Codice PHP:
    <ul>
    <?
    //Verifica i dati della form
    $NomeStr trim($_POST['Nome']);
    $Sesso trim($_POST['Sesso']);
    if (
    $Sesso=="M") {
    $M2 "t1.M = '1' AND ";
    } elseif (
    $Sesso=="F") {
    $F2 "t1.F = '1' AND ";
    }
    $Eta trim($_POST['Eta']);
    if (
    $Eta=="tutte" OR $Eta=="Da 18 anni in poi") {
    $Eta2 "t1.Eta = '$Eta' AND";
    }
    $Provincia trim($_POST['Provincia']);
    if (
    $Provincia!="Tutte") {
    $Provincia2 "AND t2.Provincia = '$Provincia'";
    }
    $Handicap trim($_POST['Handicap']);
    $Handicap2 "t1.Handicap = '$Handicap'";
    $Intervento trim($_POST['Intervento']);
    if (
    $Intervento!="Tutte") {
    $Intervento2 "AND t1.Area = '$Intervento'";
    }

    if (
    $NomeStr!="") {
    $where "t2.Nome LIKE '%$NomeStr%'";
    } else {
    $where "$M2 $F2 $Eta2 $Handicap2 $Intervento2 $Provincia2";
    }
    //Strutture
    $query "SELECT t2.ID as IDStruttRic, t2.Nome as NomeStruttRic, t2.Url as UrlStruttRic, t1.Eta as EtaStrutt FROM strutture as t2 JOIN dati_strutt as t1 ON t2.ID = t1.Struttura WHERE $where ORDER BY t2.Nome";
    $result mysql_query($query$db);
    $Dati_Trovati mysql_num_rows($result);
    if (
    $Dati_Trovati==OR $Sesso=="" OR $Eta=="" OR $Handicap=="" OR $Intervento=="" OR $Provincia=="") {
    echo 
    "<center>
    [b]Non ci sono risultati[/b]



    <a href=\"javascript:history.back()\">Indietro</a>
    </center>"
    ;
    } else {
    while(
    $row mysql_fetch_array($result)) {
    $IDStruttRic $row["IDStruttRic"];
    $NomeStruttRic $row["NomeStruttRic"];
    $UrlStruttRic $row["UrlStruttRic"];
    $EtaStrutt $row["EtaStrutt"];
    $Eta3 explode(" - ",$Eta);
    $min $Eta3[0];
    $max $Eta3[1];
    if ((
    $Eta $min OR $Eta $max) AND ($Eta!="tutte" AND $Eta!="Da 18 anni in poi") AND $NomeStr=="") {
    echo 
    "<center>
    [b]Non ci sono risultati[/b]



    <a href=\"javascript:history.back()\">Indietro</a>
    </center>"
    ;
    break;
    } elseif ((
    $Eta >= $min AND $Eta <= $max AND $NomeStr=="") OR (($Eta=="tutte" OR $Eta=="Da 18 anni in poi") AND $NomeStr=="") OR $NomeStr!="") {
    //Disponibilità
    $query2 "SELECT * FROM disponibilita WHERE Struttura = '$IDStruttRic'";
    $result2 mysql_query($query2$db);
    $row2 mysql_fetch_array($result2);
    $TotalePosti $row2["Totale"];
    $LiberiPosti $row2["Liberi"];

    //Se l'url è indicato aggiunge il link altrimenti si linka alla pagina interna
    if ($UrlStrutt!="") {
    echo 
    "[*]<a href=\"$UrlStruttRic\" target=\"_blank\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    } else {
    echo 
    "[*]<a href=\"pag.php?Pag=struttura&Struttura=$IDStruttRic\">$NomeStruttRic</a> (Totale accoglibili: $TotalePosti - Disponibilit&agrave; attuale: $LiberiPosti)
    "
    ;
    }
    }
    }

    }
    ?>[/list]
    Così com'è ora funge con tutte e Da 18 anni in poi, il problema resta con i numeri.

  7. #7
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    aggiungere il mio codice per i numeri no eh?

  8. #8
    E annullo il resto.

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.