L'errore si verifica puntualmente tutte le volte che il numero di elementi da listare è zero, ma solo se la versione di MySQL è la 4.1 o sup.1064 - 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 '-20, 20' at line 1
...segue la query eseguita...
[TEP STOP]
La causa è un bug non critico delle classi split_page_results (file: split_page_results.php), sia lato shop che lato admin.
Il codice errato della classe lato shop è il seguente (riga 61 circa):
Codice: Seleziona tutto
if ($this->current_page_number > $this->number_of_pages) {
$this->current_page_number = $this->number_of_pages;
}
La linea di codice successiva:
Codice: Seleziona tutto
$offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1));
Una soluzione banale consiste nell'aggiungere un if di controllo, come segue:
Codice: Seleziona tutto
if ($this->number_of_pages > 0) {
if ($this->current_page_number > $this->number_of_pages) {
$this->current_page_number = $this->number_of_pages;
}
} else $this->current_page_number=1;
Un discorso del tutto analogo vale per la classe split lato admin.
Concludo segnalando anche la mancanza di un controllo di consistenza sulla variabile $max_rows, in altre parole valori nulli o negativi non vengono 'filtrati'.
Marcus