aggiungere la paginazione

ho provato così

cerca_c.php

PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca=mysql_escape_string(stripslashes($_SESSION['cerca_c']));   
if($cerca_c=="" || strlen($cerca_c)<2){   
    echo "dati inseriti non validi";   
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere  
}else{  
  $query = "SELECT * FROM
    annunci INNER JOIN citta ON (annunci.cittaid=citta.id)
      INNER JOIN tipo ON (annunci.tipoid=tipo.id)
      INNER JOIN tipo ON (annunci.fasciaid=fascia.id)
       INNER JOIN modello ON (annunci.modelloid=modello.id)
     INNER JOIN users ON (annunci.user_id=users.id)
    
    WHERE citta LIKE '%$cerca%'  OR fascia LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR modello LIKE '%$cerca%' "; 

     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){  
        echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";  
        //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati  
    }else{  
        //visto che ci sono dati inserisci anche la paginazione  
        require_once "paginazione.php";//metti l'once  
        $p = new Paging;  
        $max = 5;  
        // identifichiamo la pagina da cui iniziare la numerazione  
        $inizio = $p->paginaIniziale($max);  
        // troviamo il numero delle pagine che dovrà essere contato   
        $pagine = $p->contaPagine($count, $max);  
        $lim="LIMIT $inizio, $max";  
        $sq_lim=$q.$lim;//ripetere lo stesso codice uguale è sempre cattiva programmazione  
        $risultato=mysql_query($sq_lim);  
       
        while($row=mysql_fetch_array($q)){     
            $click_annuncio = $row['click_annuncio'];  
$id_annunci = $row['id_annunci'];  
$user_id = $row['id'];
    $modello = $row['modello'];
  $messaggio = substr($row['messaggio'], 0, 25);  
  $mq = $row['mq'];
  $prezzo = $row['prezzo']; 
  $tipologia = $row['tipologia']; 
    $sigla = $row['sigla']; 
   $tipo = $row['tipo']; 
  $name = $row['name']; 
   $locali = $row['locali']; 
  $via = $row['via']; 
  $citta = $row['citta']; 
  $username = $row['username']; 
  $email = $row['email']; 
   $condizioni = $row['condizioni']; 
    $regione = $row['regione']; 
     $tipo = $row['tipo']; 
      $condizioni = $row['condizioni']; 
       $logo_cliente = $row['logo_cliente']; 
          
   
   $nome_file = $row['nome_file']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
  $nome_file_vero = $row['nome_file_vero']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
            //cosa ci sta a fare in mezzo a una table <p class='three'> eventualmente la class dalla al td o al tr 
            //tra l'altro non c'è la chiusura del tag </p> 
            //poi c'è una chiusura </table> nel mezzo (quindi hai messo due chiusure e una sila apertura) e 
            //ci sono dei tr non aperti ma solo chiusi 
            echo" <h5><table width='100%'>"; 
  echo" <tr>"; 
   echo" <p class='three'><td colspan='3'> <a href=\"rannunci.php?id=$id_annunci\"/>$via,$citta,$name,$sigla,$regione</a></td>"; 
 echo" </tr>"; 
 echo" <tr>"; 
  echo"  <td width='14%' bgcolor='#f4f9fd'> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini2.php?id_annunci=$id_annunci' name='nome_file'  alt'' width='150' height='150'  /></a></td>"; 
  echo"  <td width='45%' bgcolor='#f4f9fd'><table width='100%'>"; 
   echo"   <tr>"; 
    echo"    <td>Stato Imbarcazione :<br /> $tipo <br /> Tipo imbarcazione: <br />$modello<br /></td>"; 
    echo"  </tr>"; 
    echo"  <tr>"; 
      echo"  <td> <a href=\"rannunci.php?id=$id_annunci\"/><button class=\"button orangeButt\">Vedi dettagli </button></td>"; 
echo"</tr>"; 
 echo"     <tr>"; 
    echo"    <td>&nbsp;</td>"; 
    echo"  </tr>"; 
   echo" </table></td>"; 
  echo"  <td width='31%' bgcolor='#f4f9fd'>Prezzo:$prezzo<br />Lunghezza:$mq<br />Cabine:$locali</p> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/></a></td>"; 
  echo"</tr>"; 
echo"</table></h5>"; 

}  

        $lista = $p->listaPagine($_GET['p'], $pagine); 
        echo "<tr><td colspan=\"3\">"; 
        echo "$lista . <br>"; 
          $navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);  
         echo $navigatore;  
        echo "</td></tr>"; 
        echo"</table></h5>"; 
    }//fine if-else ci sono dati 
}//fine if-else post giusto 
?>

form cerca

PHP:
  <?php
  require ("db_connect.php"); 
  $aid = $_POST['aid'];  
    $bid = $_POST['bid'];
     $cid = $_POST['cid'];
   $fascias = @mysql_query ("SELECT id, fascia FROM fascia");
  if (!$fascias) {
  exit('<p>unable to obtain fascias </p>');
  }
  $tipos = @mysql_query ("SELECT id, tipo FROM tipo ");
  if (!$tipos) {
  exit('<p>unable to obtain tipos </p>');
  }
  $modellos = @mysql_query ("SELECT id, modello FROM modello ");
  if (!$modellos) {
 exit('<p>unable to obtain tipos </p>');
  }
  ?>
  <table width="100%">
  <tr>
    <td width="22%"><p><img src="immagini/logo2.jpg" width="168" height="135" /></p>
    <p>
    <h2>Raffina la ricerca</h2>
    </p></td>
    <td width="78%">
    <table width="100%">
          <tr>
            <th width="90%" align="center" valign="bottom" scope="col">&nbsp;</th>
            <th width="9%" scope="col"></th>
          </tr>
          <tr>
  <td align="center" valign="bottom"> <h2>Vendita Barche</h2> <hr /><h5>inserisci: un comune o una provincia o una regione o una citta' </h5>
           <form action='cerca_c.php' method='POST'>
           <input type='text' tabindex='15' name='cerca_c' class='input' size="15" >
  <select name="aid" size="1">
  <option selected value="">Seleziona fascia prezzo</option>
 <?php
   while ($fascia = mysql_fetch_array($fascias)) {
    $aid = $fascia['id'];
    $afascia = htmlspecialchars($fascia['fascia']);
    echo "<option value='$aid'>$afascia</option>\n";
  }
  ?>
</select>

<select name="cid" size="1">
  <option selected value="">Tipologia barca</option>
<?php
   while ($modello = mysql_fetch_array($modellos)) {
    $cid = $modello['id'];
    $cmodello = htmlspecialchars($modello['modello']);
    echo "<option value='$cid'>$cmodello</option>\n";
  }
  ?>
</select>

<select name="bid" size="1">
  <option selected value="">Seleziona tipo annuncio</option>
  
<?php
   while ($tipo = mysql_fetch_array($tipos)) {
    $bid = $tipo['id'];
    $btipo = htmlspecialchars($tipo['tipo']);
    echo "<option value='$bid'>$btipo</option>\n";
  }
  ?>

ma mi da sempre

echo "dati inseriti non validi";
 
PHP:
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c']));
if ($cerca_c == "" || strlen($cerca_c) < 2) {
    echo "dati inseriti non validi";
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere  
}

Fai un controllo su $cerca_c che non esiste visto che inizializzi la variabile $cerca
 
Solitamente funziona.. :(

qui voglio solo trovare i campi dei menu a tendina insieme alla città
 
Non ho letto tutto il codice

ma se il campo
PHP:
<input type='text' tabindex='15' name='cerca_c' class='input' size="15" >
viene lasciato vuoto la tua condizione sarà sempre vera e il messaggio
PHP:
echo "dati inseriti non validi";

verrà sempre stampato


Comincia con sistemare quella in questo modo

PHP:
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c']));
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") {
    echo "dati inseriti non validi";
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere  
}

questo vuol dire che stampi il messaggio solo se $cerca è troppo corto e se tutti i campi sono vuoti
altrimenti se hai anche un solo dato valido vai avanti.

Poi secondo me dovresti rivedere la query aggiungendo le cocndizioni per icampi ricevuti dalle select del form

PHP:
$query = "SELECT * FROM annunci 
                           INNER JOIN citta ON (annunci.cittaid=citta.id)
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id)
                           INNER JOIN tipo ON (annunci.fasciaid=fascia.id)
                           INNER JOIN modello ON (annunci.modelloid=modello.id)
                           INNER JOIN users ON (annunci.user_id=users.id)
                           WHERE 1";
if($cerca != "") {
$query.= " &&  (citta.citta LIKE '%$cerca%'  OR fascia.fascia LIKE '%$cerca%' OR tipo.tipo LIKE '%$cerca%' OR modello.modello LIKE '%$cerca%')";
}

if($aid != "") {
$query.= " && fascia.fascia = '$aid'";
}

nella query ripeti due volte la JOIN sulla tabella 'tipo' Probabilemte li va un errore e non ti da risultati

troppe tabelle .. non potevi farne proprio a meno?

Se i campi non sono validi o la ricerca non produce risultati dovresti tornare alla pagina del form

C'è un po di confusione ma credo che riuscirai a risolvere.... con un po di calma
 
Speriamo .... mi o sono messo in un loop tremendo ..

cmq ho fatto così e mi dice Query was empty

codice

PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $query = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN tipo ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1"; 
if($cerca != "") { 
$query.= " &&  (citta.citta LIKE '%$cerca%'  OR fascia.fascia LIKE '%$cerca%' OR tipo.tipo LIKE '%$cerca%' OR modello.modello LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$query.= " && fascia.fascia = '$aid'"; 
}  
     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){  
        echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";  
        //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati  
    }else{  
        //visto che ci sono dati inserisci anche la paginazione  
        require_once "paginazione.php";//metti l'once  
        $p = new Paging;  
        $max = 5;  
        // identifichiamo la pagina da cui iniziare la numerazione  
        $inizio = $p->paginaIniziale($max);  
        // troviamo il numero delle pagine che dovrà essere contato   
        $pagine = $p->contaPagine($count, $max);  
        $lim="LIMIT $inizio, $max";  
        $sq_lim=$q.$lim;//ripetere lo stesso codice uguale è sempre cattiva programmazione  
        $risultato=mysql_query($sq_lim);  
       
        while($row=mysql_fetch_array($q)){     
            $click_annuncio = $row['click_annuncio'];  
$id_annunci = $row['id_annunci'];  
$user_id = $row['id'];
    $modello = $row['modello'];
  $messaggio = substr($row['messaggio'], 0, 25);  
  $mq = $row['mq'];
  $prezzo = $row['prezzo']; 
  $tipologia = $row['tipologia']; 
    $sigla = $row['sigla']; 
   $tipo = $row['tipo']; 
  $name = $row['name']; 
   $locali = $row['locali']; 
  $via = $row['via']; 
  $citta = $row['citta']; 
  $username = $row['username']; 
  $email = $row['email']; 
   $condizioni = $row['condizioni']; 
    $regione = $row['regione']; 
     $tipo = $row['tipo']; 
      $condizioni = $row['condizioni']; 
       $logo_cliente = $row['logo_cliente']; 
          
   
   $nome_file = $row['nome_file']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
  $nome_file_vero = $row['nome_file_vero']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
            //cosa ci sta a fare in mezzo a una table <p class='three'> eventualmente la class dalla al td o al tr 
            //tra l'altro non c'è la chiusura del tag </p> 
            //poi c'è una chiusura </table> nel mezzo (quindi hai messo due chiusure e una sila apertura) e 
            //ci sono dei tr non aperti ma solo chiusi 
            echo" <h5><table width='100%'>"; 
  echo" <tr>"; 
   echo" <p class='three'><td colspan='3'> <a href=\"rannunci.php?id=$id_annunci\"/>$via,$citta,$name,$sigla,$regione</a></td>"; 
 echo" </tr>"; 
 echo" <tr>"; 
  echo"  <td width='14%' bgcolor='#f4f9fd'> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini2.php?id_annunci=$id_annunci' name='nome_file'  alt'' width='150' height='150'  /></a></td>"; 
  echo"  <td width='45%' bgcolor='#f4f9fd'><table width='100%'>"; 
   echo"   <tr>"; 
    echo"    <td>Stato Imbarcazione :<br /> $tipo <br /> Tipo imbarcazione: <br />$modello<br /></td>"; 
    echo"  </tr>"; 
    echo"  <tr>"; 
      echo"  <td> <a href=\"rannunci.php?id=$id_annunci\"/><button class=\"button orangeButt\">Vedi dettagli </button></td>"; 
echo"</tr>"; 
 echo"     <tr>"; 
    echo"    <td>&nbsp;</td>"; 
    echo"  </tr>"; 
   echo" </table></td>"; 
  echo"  <td width='31%' bgcolor='#f4f9fd'>Prezzo:$prezzo<br />Lunghezza:$mq<br />Cabine:$locali</p> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/></a></td>"; 
  echo"</tr>"; 
echo"</table></h5>"; 

}  

        $lista = $p->listaPagine($_GET['p'], $pagine); 
        echo "<tr><td colspan=\"3\">"; 
        echo "$lista . <br>"; 
          $navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);  
         echo $navigatore;  
        echo "</td></tr>"; 
        echo"</table></h5>"; 
    }//fine if-else ci sono dati 
}//fine if-else post giusto 
?>
 
cambia
PHP:
 $q = mysql_query($q) or die (mysql_error()) ;

con

PHP:
 $q = mysql_query($query) or die (mysql_error()) ;


$q é vuota fino a quel momento

credo che WHERE 1 o WHERE 1=1 si equivalgono (è sempre vera)

meglio 1=1
 
Ho provato così funge ma mi da' tutti i risultati ..

non fa' il chirurgo

PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$query.= " &&  (citta.citta LIKE '%$cerca%'  OR fascia.fascia LIKE '%$cerca%' OR tipo.tipo LIKE '%$cerca%' OR modello.modello LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$query.= " && fascia.fascia = '$aid'"; 
}  
     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){  
        echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";  
        //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati  
    }else{  
        //visto che ci sono dati inserisci anche la paginazione  
        require_once "paginazione.php";//metti l'once  
        $p = new Paging;  
        $max = 5;  
        // identifichiamo la pagina da cui iniziare la numerazione  
        $inizio = $p->paginaIniziale($max);  
        // troviamo il numero delle pagine che dovrà essere contato   
        $pagine = $p->contaPagine($count, $max);  
        $lim="LIMIT $inizio, $max";  
        $sq_lim=$q.$lim;//ripetere lo stesso codice uguale è sempre cattiva programmazione  
        $risultato=mysql_query($sq_lim);  
       
        while($row=mysql_fetch_array($q)){     
            $click_annuncio = $row['click_annuncio'];  
$id_annunci = $row['id_annunci'];  
$user_id = $row['id'];
    $modello = $row['modello'];
  $messaggio = substr($row['messaggio'], 0, 25);  
  $mq = $row['mq'];
  $prezzo = $row['prezzo']; 
  $tipologia = $row['tipologia']; 
    $sigla = $row['sigla']; 
   $tipo = $row['tipo']; 
  $name = $row['name']; 
   $locali = $row['locali']; 
  $via = $row['via']; 
  $citta = $row['citta']; 
  $username = $row['username']; 
  $email = $row['email']; 
   $condizioni = $row['condizioni']; 
    $regione = $row['regione']; 
     $tipo = $row['tipo']; 
      $condizioni = $row['condizioni']; 
       $logo_cliente = $row['logo_cliente']; 
          
   
   $nome_file = $row['nome_file']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
  $nome_file_vero = $row['nome_file_vero']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
            //cosa ci sta a fare in mezzo a una table <p class='three'> eventualmente la class dalla al td o al tr 
            //tra l'altro non c'è la chiusura del tag </p> 
            //poi c'è una chiusura </table> nel mezzo (quindi hai messo due chiusure e una sila apertura) e 
            //ci sono dei tr non aperti ma solo chiusi 
            echo" <h5><table width='100%'>"; 
  echo" <tr>"; 
   echo" <p class='three'><td colspan='3'> <a href=\"rannunci.php?id=$id_annunci\"/>$via,$citta,$name,$sigla,$regione</a></td>"; 
 echo" </tr>"; 
 echo" <tr>"; 
  echo"  <td width='14%' bgcolor='#f4f9fd'> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini2.php?id_annunci=$id_annunci' name='nome_file'  alt'' width='150' height='150'  /></a></td>"; 
  echo"  <td width='45%' bgcolor='#f4f9fd'><table width='100%'>"; 
   echo"   <tr>"; 
    echo"    <td>Stato Imbarcazione :<br /> $tipo <br /> Tipo imbarcazione: <br />$modello<br /></td>"; 
    echo"  </tr>"; 
    echo"  <tr>"; 
      echo"  <td> <a href=\"rannunci.php?id=$id_annunci\"/><button class=\"button orangeButt\">Vedi dettagli </button></td>"; 
echo"</tr>"; 
 echo"     <tr>"; 
    echo"    <td>&nbsp;</td>"; 
    echo"  </tr>"; 
   echo" </table></td>"; 
  echo"  <td width='31%' bgcolor='#f4f9fd'>Prezzo:$prezzo<br />Lunghezza:$mq<br />Cabine:$locali</p> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/></a></td>"; 
  echo"</tr>"; 
echo"</table></h5>"; 

}  

        $lista = $p->listaPagine($_GET['p'], $pagine); 
        echo "<tr><td colspan=\"3\">"; 
        echo "$lista . <br>"; 
          $navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);  
         echo $navigatore;  
        echo "</td></tr>"; 
        echo"</table></h5>"; 
    }//fine if-else ci sono dati 
}//fine if-else post giusto 
?>
 
o la chiami $q o la chiami $query

PHP:
$q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 ";
    if ($cerca != "") {
        $query.= " &&  (citta.citta LIKE '%$cerca%'  OR fascia.fascia LIKE '%$cerca%' OR tipo.tipo LIKE '%$cerca%' OR modello.modello LIKE '%$cerca%')";
    }

    if ($aid != "") {
        $query.= " && fascia.fascia = '$aid'";
    }
    $q = mysql_query($q) or die(mysql_error());
    $count = mysql_num_rows($q);

$query.= " diventerà $q.= " etc

in più devi aggiungere le condizioni su $bid e $cid
 
Ciao e grazie mille intanto ...

ho fatto la seguente modifica

PHP:
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$q.= " &&  (citta LIKE '%$cerca%'  OR fascia LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR modello LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q.= " && fascia.fascia = '$aid'"; 
}  
     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){

HO messo q al posto di query ....

in più devi aggiungere le condizioni su $bid e $cid

questo intendi qui ???

PHP:
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];

Oppure intendi così

PHP:
if($cerca != "") { 
$q.= " &&  (citta LIKE '%$cerca%'  OR fascia LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR modello LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q.= " && fascia.fascia = '$aid'"; 
}  
if($bid != "") { 
$q.= " && modello.modello = '$bid'"; 
}  
if($cid != "") { 
$q.= " && tipo.tipo = '$cid'"; 
}
 
Ultima modifica:
cosi mi da' Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave

PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$q.= " &&  (citta LIKE '%$cerca%'  OR fascia LIKE '%$cerca%' OR tipo LIKE '%$cerca%' OR modello LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q.= " && fascia.fascia = '$aid'"; 
}  
if($bid != "") { 
$q.= " && modello.modello = '$bid'"; 
}  
if($cid != "") { 
$q.= " && tipo.tipo = '$cid'"; 
}  
     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){  
        echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";  
        //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati  
    }else{  
        //visto che ci sono dati inserisci anche la paginazione  
        require_once "paginazione.php";//metti l'once
 
sembra giusta

se sei sicuro che dovrebbe restituirti qualche record prova a stampare la query

PHP:
echo $q;
 
ciao
scusa una cosa, ma se fai
$aid = $_POST['aid'];
$bid = $_POST['bid'];
$cid = $_POST['cid'];
e poi nella query non li usi come vuoi che facciano il chirurgo?
 
ciao
scusa, mi sono espresso male
volevo dire che se metti
OR fascia LIKE '%$cerca%'
e poi
&& fascia.fascia = '$aid'"
o uno o l'altro non ha senzo che la fascia sia LIKE o poi uguale a qualcos'altro
per i campi per cui usi $aid $bid o $cid togli la parte LIKE %$cerca%
 
Ho fatto così ...... Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave


PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$q.= " &&  (citta LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q.= " && fascia.fascia = '$aid'"; 
}  
if($bid != "") { 
$q.= " && modello.modello = '$bid'"; 
}  
if($cid != "") { 
$q.= " && tipo.tipo = '$cid'"; 
}
 
ora vedo che nella value delle select metti l'id

PHP:
echo "<option value='$cid'>

di conseguenza le condizioni devono cambiare

PHP:
if ($aid != "") {
        $q.= " && fascia.id = '$aid'";
    }
 
mi coreggo ... ho tolto il . a q

e mi dà il seguente errore

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '&& tipo.tipo = '3'' at line 1

PHP:
 <?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$q= " &&  (citta LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q= " && fascia.fascia = '$aid'"; 
}  
if($bid != "") { 
$q= " && modello.modello = '$bid'"; 
}  
if($cid != "") { 
$q= " && tipo.tipo = '$cid'"; 
}
 
mi correggo ulteriormente
errore

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '&& modello.modello = '9'' at line 1


codice cerca_c.php

PHP:
<?php
class MySQL{       
    function MySQL()       
    {       
        require_once "db_connect.php";  //metti l'once   
    }       
}
$aid = $_POST['aid'];   
    $bid = $_POST['bid']; 
     $cid = $_POST['cid'];       
$data = new MySQL();     
if(isset ($_POST['cerca_c'])){   
    $_SESSION['cerca_c']=$_POST['cerca_c'];   
}   
$cerca = mysql_escape_string(stripslashes($_SESSION['cerca_c'])); 
if (strlen($cerca) < 2 && $aid == "" && $bid == "" && $cid == "") { 
    echo "dati inseriti non validi"; 
    //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere   
}  else{  
  $q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id)
                            INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id)
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 "; 
if($cerca != "") { 
$q= " &&  (citta LIKE '%$cerca%')"; 
} 

if($aid != "") { 
$q= " && fascia.fascia = '$aid'"; 
} 
if($bid != "") { 
$q= " && tipo.tipo = '$bid'"; 
}
if($cid != "") { 
$q= " && modello.modello = '$cid'"; 
}  
  
     $q = mysql_query($q) or die (mysql_error()) ;  
    $count=mysql_num_rows($q); 
    if($count == 0){  
        echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";  
        //e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati  
    }else{  
        //visto che ci sono dati inserisci anche la paginazione  
        require_once "paginazione.php";//metti l'once  
        $p = new Paging;  
        $max = 5;  
        // identifichiamo la pagina da cui iniziare la numerazione  
        $inizio = $p->paginaIniziale($max);  
        // troviamo il numero delle pagine che dovrà essere contato   
        $pagine = $p->contaPagine($count, $max);  
        $lim="LIMIT $inizio, $max";  
        $sq_lim=$q.$lim;//ripetere lo stesso codice uguale è sempre cattiva programmazione  
        $risultato=mysql_query($sq_lim);  
       
        while($row=mysql_fetch_array($q)){     
            $click_annuncio = $row['click_annuncio'];  
$id_annunci = $row['id_annunci'];  
$user_id = $row['id'];
    $modello = $row['modello'];
  $messaggio = substr($row['messaggio'], 0, 25);  
  $mq = $row['mq'];
  $prezzo = $row['prezzo']; 
  $tipologia = $row['tipologia']; 
    $sigla = $row['sigla']; 
   $tipo = $row['tipo']; 
  $name = $row['name']; 
   $locali = $row['locali']; 
  $via = $row['via']; 
  $citta = $row['citta']; 
  $username = $row['username']; 
  $email = $row['email']; 
   $condizioni = $row['condizioni']; 
    $regione = $row['regione']; 
     $tipo = $row['tipo']; 
      $condizioni = $row['condizioni']; 
       $logo_cliente = $row['logo_cliente']; 
          
   
   $nome_file = $row['nome_file']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
  $nome_file_vero = $row['nome_file_vero']; 
  $tipo_file = $row['tipo_file']; 
  $dati_file = $row['dati_file']; 
   
            //cosa ci sta a fare in mezzo a una table <p class='three'> eventualmente la class dalla al td o al tr 
            //tra l'altro non c'è la chiusura del tag </p> 
            //poi c'è una chiusura </table> nel mezzo (quindi hai messo due chiusure e una sila apertura) e 
            //ci sono dei tr non aperti ma solo chiusi 
            echo" <h5><table width='100%'>"; 
  echo" <tr>"; 
   echo" <p class='three'><td colspan='3'> <a href=\"rannunci.php?id=$id_annunci\"/>$via,$citta,$name,$sigla,$regione</a></td>"; 
 echo" </tr>"; 
 echo" <tr>"; 
  echo"  <td width='14%' bgcolor='#f4f9fd'> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini2.php?id_annunci=$id_annunci' name='nome_file'  alt'' width='150' height='150'  /></a></td>"; 
  echo"  <td width='45%' bgcolor='#f4f9fd'><table width='100%'>"; 
   echo"   <tr>"; 
    echo"    <td>Stato Imbarcazione :<br /> $tipo <br /> Tipo imbarcazione: <br />$modello<br /></td>"; 
    echo"  </tr>"; 
    echo"  <tr>"; 
      echo"  <td> <a href=\"rannunci.php?id=$id_annunci\"/><button class=\"button orangeButt\">Vedi dettagli </button></td>"; 
echo"</tr>"; 
 echo"     <tr>"; 
    echo"    <td>&nbsp;</td>"; 
    echo"  </tr>"; 
   echo" </table></td>"; 
  echo"  <td width='31%' bgcolor='#f4f9fd'>Prezzo:$prezzo<br />Lunghezza:$mq<br />Cabine:$locali</p> <a href=\"rannunci.php?id=$id_annunci\"/><img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/></a></td>"; 
  echo"</tr>"; 
echo"</table></h5>"; 

}  

        $lista = $p->listaPagine($_GET['p'], $pagine); 
        echo "<tr><td colspan=\"3\">"; 
        echo "$lista . <br>"; 
          $navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);  
         echo $navigatore;  
        echo "</td></tr>"; 
        echo"</table></h5>"; 
    }//fine if-else ci sono dati 
}//fine if-else post giusto 
?>
 
provala cosi


PHP:
$q = "SELECT * FROM annunci  
                           INNER JOIN citta ON (annunci.cittaid=citta.id) 
                           INNER JOIN tipo ON (annunci.tipoid=tipo.id) 
                           INNER JOIN fascia ON (annunci.fasciaid=fascia.id) 
                           INNER JOIN modello ON (annunci.modelloid=modello.id) 
                           INNER JOIN users ON (annunci.user_id=users.id) 
                           WHERE 1=1 ";
    if ($cerca != "") {
        $q.= " &&  (citta LIKE '%$cerca%')";
    }
    if ($aid != "") {
        $q.= " && fascia.id = '$aid'";
    }
    if ($bid != "") {
        $q.= " && modello.id = '$bid'";
    }
    if ($cid != "") {
        $q.= " && tipo.id = '$cid'";
    }
 

Discussioni simili