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

    select multipla da form - valori nel db

    salve a tutti

    ho un form che completando dei valori invia una richista al mysql e da i risultati.
    Pero nel selezionare piu dati nel menu a tendina, mi restituisce sempre la ricerca dell'ultimo selezionato. Come posso fare a cercare con piu tipologie?

    grazie mille

    CODICE PHP

    <?php

    include("includes/config.php");

    $Comune = $_POST['Comune'];


    $selectArray = array();

    if (isset($_POST["codifica"])){
    $selectArray = $_POST["codifica"];

    foreach ($selectArray as $select_value) {


    }
    }

    $db = new PDO("mysql:host=$localhost;dbname=XXX", $username, $password);
    $db -> exec("SET CHARACTER SET utf8");
    $sql ="SELECT id_immobile, citta, data, prezzo, annuncio, tipo_immobile1 from tbl_immobili WHERE citta='".$Comune."' and tipo_immobile1='".$select_value."'";


    $lista1 = $db->query($sql);

    foreach ($lista1 as $row) {
    {
    echo "

    ".'ID ANNUNCIO: '.$row[id_immobile].'
    DATA: '.$row[data].'
    PREZZO: € '.$row[prezzo].'
    CITT&Aacute;: '.$row[citta].'
    '.'DESCRIZIONE: '.$row[annuncio].$row[tipo_immobile1].'

    '."</p>";
    }


    }
    ?>

    HTML

    <body onload="prettyPrint();">
    <div class="div_ricerca">
    <form action="ricerca.php" method="post" name="prova">
    <select name="codifica[]" multiple="multiple" style="width:250px">

    <?php

    include("includes/config.php");

    $db = new PDO("mysql:host=$localhost;dbname=trei_mdb", $username, $password);
    $sql ="SELECT codifica, valore FROM tbl_codifica where campo='tipo_immobile' and valore<'10' order by codifica";
    $lista = $db->query($sql);

    foreach ($lista as $row) {

    echo "<option value=\"" .$row['valore']."\">".$row['codifica']."</option>";
    }
    ?>
    </select>



    <label>COMUNI: </label><input type='text' name='Comune' value='' class='auto'></p>
    <input type="submit" value="Ricerca">
    </form>
    </div>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    231
    Puoi modificare una prima parte del codice così:

    codice:
    $codifica = '\\'\\''; 
    
    if (isset($_POST["codifica"])){ 
    
    $selectArray = $_POST["codifica"]; 
    $codifica = '\\'' . implode('\\',\\'', $selectArray) . '\\''; 
    
    }

    mentre la query diventa così

    codice:
    $sql ="SELECT id_immobile, citta, data, prezzo, annuncio, tipo_immobile1 from tbl_immobili WHERE citta='".$Comune."' and tipo_immobile1 in (". $codifica .")";
    Fammi sapere se funziona!
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    231
    Questa è una soluzione casereccia, non ti permette di evitare l'sql injection.
    Per evitarlo devi utilizzare mysql_escape_string o una funzione simile.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    231
    se la risposta ti è stata in qualche modo di aiuto e ti va di supportarmi metti "mi piace" alla pagina a questo link

    NO GRAZIE

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.