Ciao Francesco...grazie innanzitutto...effettivamente ho provato come mi hai detto tu e la cosa funzionerebbe pure
Il problema si presenta se navigo un pochino tra le pagine...si arriverà ad un punto che la select non mi caccia nessun dato perché mettendo l'id già selezionato nell' array se ripasso sulla pagina non lo estrae più
Es..passo sulla pagina 1 e metto nell'array id (1, 3)
vado nella pagina 2 e metto nell'array id 2 e 4 avendo così (1,2,3,4)
Se ripasso sulla pagina 1 non mi estrarrà più nessun dato in quando la select è fatta in questo modo:
SELECT * FROM table where categoria = $cat and id NOT IN $Esclusi order by RAND()
dove $Esclusi = (1,2,3,4)
Non so se mi riesci a capire il mio problema
Grazie ancora
@Francesco Di Caprio said:
La selezione casuale dei dati la puoi fare direttamente da MySQL, con la clausola ORDER BY RAND()
>SELECT * FROM nome_tabella ORDER BY RAND()
>```
che va messa dopo le clausole WHERE e prima della clausola LIMIT.
Se hai la paginazione e vuoi escludere i dati precedentemente visualizzati, puoi escludere i dati da scartare con la clausola NOT IN([array]).
SELECT * FROM nome_tabella WHERE id NOT INT('1', '15', '76', '99')
Siccome immagino tu estragga i dati con una mysql_fetch_*(), puoi assegnare ad un array php tutti gli id che hai estratto, per poi passarlo al MySQL nella query successiva.
[php]
$_SESSION["visualizzati"] = array();
$sql = "SELECT * FROM ...";
$query = mysql_query($sql);
while ($riga = mysql_fetch_object($query)) {
// le tue operazioni
$_SESSION["visualizzati"][] = $riga->id;
}
[/php]
è un abbozzo, sbattuto così com'è nel tuo sistema di paginazione non va bene, ma ora dovresti avere un'idea concreta sul come procedere.