ricerca dinamica con piu campi

  • Creatore Discussione Creatore Discussione gian21
  • Data di inizio Data di inizio

gian21

Nuovo Utente
16 Mag 2013
23
0
0
salve ragazzi buonasera
in pratica , come leggerete dal titolo, non riesco bene a fare una ricerca avanzata con piu form
il problema in generale e che in una ricerca dinamica non devo per forza riempiere tutti i campi a disposizione ( e nel mio caso ce ne sono molti come : PREZZO da/a , CATEGORIA , TIPO ecc) come fare ??
vi posto il form in html e poi la pagina in php

PHP:
<html>
<head><title>Ricerca barche</title>
</head>
<body>
<div style="position:absolute; left:25%; top:37%;">
<form name="campo" method="post" action="ricercaposto.php">
  <table border="0" align="" bgcolor="#dedede">

     <th align="center" width="100" valign="bottom"><font color="00549F">Vela/motore</th>
     <th align="center" width="100" valign="bottom"><font color="00549F">Categoria</th>
     <th align="center" width="100" valign="bottom"><font color="00549F">Tipo</th>

      <!-- velamotore -->
       <tr><td align="center" width="100"><select name="velmot" id="vemo">
                              <option value="Vela/Motore">Vela/Motore</option>
                              <option value="Vela">Vela</option>
                              <option value="Motore">Motore</option>
           </td>
 
      <!-- gruppo -->
           <td align="center" width="100"><select name="group" id="grup">
                               <option value="Tutto">Tutto</option>
                               <option value="Affitto">Affitto</option>
                               <option value="Transito">Transito</option>
                               <option value="Vendita">Vendita</option>
                              </select>
                              
           </td>
 
      <!-- tipo -->
           <td align="center" width="100"><select name="tipo" id="tipos">
                                
                                <option value="Tutto">Tutto</option>
                                <option value="Affitto cerco">Affitto Cerco</option>
                                <option value="Affitto offro">Affitto Offro</option>
                                <option value="Cedo vendo">Cedo vendo</option>
                                <option value="Compro">Compro</option>
                                <option value="Scambio cerco">Scambio cerco</option>
                                <option value="Scambio offro">Scambio offro</option>
                              </select></td></tr>
                             </td>                             
                             </table>
  <tr>
  <table border="0" align="">
     
           <th align="center" height="10" valign="bottom"><font color="00549F">Lunghezza</th> 
           <th align="center" height="10" valign="bottom"><font color="00549F">Anno</th>
           <th align="center" height="10" valign="bottom"><font color="00549F">Budget</th>
           <th align="center" height="10" valign="bottom"><font color="00549F">Opzioni</th>
      
       
      <!-- lunghezza -->
       <tr><td>da <input type="text" name="da" size="10" maxlength="200"> a <input type="text" name="a" size="10" maxlength="200"></td>                        
      <!-- anno -->
           <td style="width: 100px; height: 25px; padding: 1px; overflow: auto;"><input type="text" name="year"></td>
      <!-- budget -->
           <td>da <input type="text" name="dab" size="10" maxlength="200"> a <input type="text" name="ab" size="10" maxlength="200"></td>
      <!-- opzioni -->
        <td><select name="opz" id="opzion">
         <option value="" selected="selected">Tutte</option>
         <option value="Leasing in corso">Leasing in corso</option>
         <option value="Finanziamento">Finanziamento</option>
         <option value="Possibilità di permuta">Possibilita' di permuta</option>
         </td> 
    <!-- tasto ricerca -->
         
    <td align="center" width="100"><br><input type="submit" value="Cerca" style="background-color:00549F; color:white; width:90; height:25;font-size-adjust:inherit "></td>
    </tr>
    </td>
    </tr>
    </table>
    

     
 </table>
</form>
</div>
</body>
</html>



pagina iche invia i dati

PHP:
<?php
include('connessione.php');
include ("tutto.php");
$velmot= $_POST['velmot'];
$group= $_POST['group'];
$tipo= $_POST['tipo'];
$tipo= $_POST['ab'];
$tipo= $_POST['dab'];

/* fine costruzione query */

$query = "SELECT * FROM postobarca WHERE postobarca.vel LIKE '$velmot' AND postobarca.cat LIKE '$group' ";
$risultato = mysql_query($query)

or die("Query non valida: " . mysql_error());
$num=mysql_num_rows($risultato);
IF ($num == 0) 
 {  echo ("Il database è vuoto");
     exit();
  }
mysql_close($conn);
// Se ci sono file nel DB
 
?>
<?
include("ricercahtm.php");
?>
    <style type="text/css">
        
        tr {
        
            background-color: #efefef;
        }
        
        tr:hover {
            background-color: #dedede;
        }

    </style>

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('tr').hover(function(){
                $(this).css('background','#dedede');
            }, function(){
                $(this).css('background','#efefef');
            });
        });
    </script>

<BODY>
<div style="position:absolute; left:7%; top:33%;">
<a href="INDEX.php"><b><font face="Arial" size="2" color="DIMGRAY">Home page  ></font></b></a>
<b><font face="Arial" size="2" color="003c69">Elenco di Postobarche</font></b><br>
</div>
<div style="position:absolute; left:7%; top:34%;">
<font face="Arial" size="1" color="gray">__________________________________________________________________________________________________________________________________________________________________________________________</font>
</div>
<div style="position:absolute; left:7%; top:37%;">
<img src="postobarca_box.png">
</div>
<b><font color="black" face="arial" size="2" style="left: 60%; top:57%;  position:absolute">Ordina per :</b></font>
<b><font color="black" face="arial" size="2" style="left: 70%; top:57%;  position:absolute">||</b></font>
<a href="ordinaprezzoposto.php"><b><font color="003c69" face="arial" size="2" style="left: 66%; top:57%;  position:absolute">prezzo</font></b></a>
<a href="postobarca.php"><b><font color="003c69" face="arial" size="2" style="left: 71%; top:57%;  position:absolute">data</font></b></a>
<font face="Arial" size="1" color="gray" style="left: 7%; top:59%;  position:absolute">__________________________________________________________________________________________________________________________________________________________________________________________</font>
<TABLE cellspacing="1" cellpadding="12" border=1 bordercolor="LIGHTGRAY" style="left: 7%; top:62%; position:absolute; border: 1px solid #ffffff;">
<TR>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">data ins.</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">foto</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">id</font> </TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">ubicazione</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">postobarca presso</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">lung.</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">larg. </font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">categoria</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">tipologia</font></TH>
<TH style="border: 1px solid #CDCDCD; background-color:003c69;"><font face="arial" color="white">prezzo</font></TH>
</TR>
<?php
$i=1;
while( $tmp = mysql_fetch_array($risultato))
 {
?>  
   <tr>  
   <TD style="border: 1px dotted #708090"><b><font face="arial" size="2"><?php echo date($tmp["data1"]); ?></font></b></TD>
   <TD align="center" style="border: 1px dotted #708090"><img src="ADMIN/open.php?id=<?php echo $tmp["id"]; ?>" width="120" height="90">
   <br><br>
   <FORM action="singolo1.php?id=<?php echo $tmp['id'] ?>" method="post" name="ricerca"> 
   <input type="image" img src="botton-vai-annuncio.png">
   </form>
   </TD>
   <TD style="border: 1px dotted #708090;"><b><font face="arial" size="2"><?php echo ($tmp["id"]); ?></font></b></TD>
   
   <TD style="border: 1px dotted #708090;"><p align="center"><b><font face="arial" size="2"><?php echo ($tmp["regione"]); ?>/<?php echo ($tmp["provincia"]); ?></font></b></TD>
   <TD style="border: 1px dotted #708090;"><p align="center"><b><font face="arial" size="2"><?php echo ($tmp["titolo"]); ?></font></b></TD>
   <TD style="border: 1px dotted #708090;"><p align="center"><b><font face="arial" size="2"><?php echo ($tmp["lung"]); ?>.00 mt</font></b></TD>
   <TD style="border: 1px dotted #708090;"><p align="center"><b><font face="arial" size="2"><?php echo ($tmp["larg"]); ?>.00 mt</font></b></TD>
   <TD style="border: 1px dotted #708090;"><b><font face="arial" size="2"><?php echo ($tmp["cat"]); ?></font></b></TD>
    <TD style="border: 1px dotted #708090;"><b><font face="arial" size="2"><?php echo ($tmp["tip"]); ?></font></b></TD>
    <TD style="border: 1px dotted #708090;"><p align="right"><b><font face="arial" color="003c69" size="3"><?php echo number_format($tmp["prezzo"]); ?>,00</font></b></TD>
    </TR>  
<?php
 }
 ?>
<b><font color="003c69" face="arial" size="3" style="left: 7%; top:57%;  position:absolute">Postobarca trovati : <? include("contposto.php") ?></b></font>
<?
?>
</TABLE>
 
campi = peso, dimensione, colore

PHP:
$LIKE = "";
if(isset($_POST["peso"])) {
  $LIKE .= "AND peso LIKE '" . $_POST['peso'] . "'";
}
if(isset($_POST["dimensione"])) {
  $LIKE .= "AND dimensione LIKE '" . $_POST['dimensione'] . "'";
}
if(isset($_POST["colore"])) {
  $LIKE .= "AND colore LIKE '" . $_POST['colore'] . "'";
}

$LIKE = substr($LIKE, 4);

Una cosa così.
Volendo la si potrebbe automatizzare dandogli in pasto un array con l'elenco delle variabili da controllare, ma non è fa parte della domanda.
 
ciao grazie per la riposta...
volevo sapere un paio di cose
1) questo lo si deve inserire all interno di questa query ?? $query = "SELECT * FROM postobarca WHERE postobarca.vel LIKE '$velmot' AND postobarca.cat LIKE '$group' AND postobarca.tipo LIKE '$tipo' ";
e se si come inserirla?
2) purtroppo o dei form messi con dei select... e vorrei che qualcuno non venga preso in considerazione come fare?
 
la parte di codice che ti ho scritto va a creare la parte di query relativa ai LIKE, va concatenata al resto della query

$QUERY = $QUERY . $LIKE;

Comunque se non sei riuscito a capirlo da solo considererei l'ipotesi di studiarti la documentazione di MySQL e di PHP.
 
e lo so scusami ma sono alle prime armi del php

per quanto rigurada il secondo punto hai qualche dritta da darmi
 
$query = "SELECT * FROM postobarca WHERE postobarca.vel LIKE '$velmot'";
$LIKE = "";
if(isset($_POST["group"])) {
$LIKE .= "AND cat LIKE '" . $_POST['group'] . "'";
}
if(isset($_POST["tipo"])) {
$LIKE .= "AND tipo LIKE '" . $_POST['tipo'] . "'";
}
$query = $query . $LIKE;
$risultato = mysql_query($query)
or die("Query non valida: " . mysql_error());
$num=mysql_num_rows($risultato);
IF ($num == 0)
{ echo ("Il database è vuoto");
exit();
}
mysql_close($conn);


mi va sul echo (database vuoto) mi sai dire dove sbaglio
 

Discussioni simili