allora, ho capito che quello che mi genera errore è il tipo di controllo che faccio,prima di fare la paginazione, in quanto se eseguo questa select:
non ho errori, ma se faccio questi controlli prima di fare la select e quindi la paginazione mi va in errore, questo è quello che faccio in pratica:codice:$count = mysql_query("SELECT COUNT(ID_ALLOGGI) FROM DatiLod_Mod where DL_DATA_LOG like'%$DATA%' order by DL_DATA_LOG asc");
ragazzi vi chiedo cortesemente una mano per capire come mai, con i controlli non funziona..sicuramente sbaglio a farli, ma ditemi per favore come ovviare a questo problema...Grazie millecodice://se nessun campo è valorizzato if($MATRICOLA=="" && $DATA_LOG=="" && $OPID==""){ //... } //controllo valori dei campi dopo digitazione utente(clausola ||(OR)) elseif(preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$MATRICOLA) || preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#\.@,;:]/i",$DATA_LOG) || preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$OPID)){ //.... } //controllo valori dei campi dopo digitazione utente(clausola &&(AND)) elseif(preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$MATRICOLA) && preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#\.@,;:]/i",$DATA_LOG) && preg_match("/[§ç!°£$%&\|\/\(\)=\?\^\[\]\+\*#-\.@,;:]/i",$OPID)){ //.... } else{ //se la ricerca è solo per Matricola if($MATRICOLA!=""){ $select .= (" DL_MATRICOLA='$MATRICOLA'"); } //se è solo per Data Log elseif($DATA_LOG!=""){ $select .= (" DL_DATA_LOG like'$DATA_LOG%'"); } //se è solo per Operatore(OPID) elseif($OPID!=""){ $select .= (" DL_OPID_LOG='$OPID'"); } //altrimenti se è per tutti i campi valorizzati per la ricerca elseif($MATRICOLA!="" && $DATA_LOG!="" && $OPID!=""){ $select .= (" DL_MATRICOLA='$MATRICOLA' and DL_DATA_LOG like'$DATA_LOG%' and DL_OPID_LOG='$OPID'"); } $count = mysql_query("SELECT COUNT(ID_ALLOGGI) FROM DatiLod_Mod where " . $select . " order by DL_DATA_LOG asc"); $res_count = mysql_fetch_row($count); // numero totale di records $tot_records = $res_count[0]; // risultati per pagina(secondo parametro di LIMIT) $per_page = 2; // numero totale di pagine $tot_pages = ceil($tot_records / $per_page); // pagina corrente $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page']; // primo parametro di LIMIT $primo = ($current_page - 1) * $per_page; echo "<div align=\"center\">\n<table>\n"; // esecuzione seconda query con LIMIT $query_limit = mysql_query("SELECT * FROM DatiLod_Mod where DL_DATA_LOG like'%$DATA%' LIMIT $primo, $per_page"); while($results = mysql_fetch_array($query_limit)) { echo " <tr>\n <td>" . $results['DL_MATRICOLA'] . "</td> <td>" . $results['DL_DATA_LOG'] . "</td> <td>" . $results['DL_OPID_LOG'] . "</td>"; echo "</td>\n </tr>\n"; echo "</tr>\n"; } // includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente include("paginazione_1.php"); // in questa cella inseriamo la paginazione echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n"; echo " </tr>\n</table>\n</div>"; mysql_close();

Rispondi quotando