$query2 = "SELECT * FROM Tabella ORDER BY RAND()";
E' possibile far comparire più frequente un record che ha un campo 'Priorita' 10 rispetto ad uno che ha 5?
$query2 = "SELECT * FROM Tabella ORDER BY RAND()";
E' possibile far comparire più frequente un record che ha un campo 'Priorita' 10 rispetto ad uno che ha 5?
:master:
al massimo puoi fare questo:
$query2 = "SELECT * FROM Tabella where priorità='10' ORDER BY RAND()";
E qua c'arrivo!![]()
secondo me potresti fare una cosa cosi' s nn esiste una funzione specifica.
Estari i dati senza rand();
Li metti in un array e usi una funzione per estrarre random un valore all'interno.
Nel momento dell'esecuzione, controlli il valore estratto .
Allo stesso tempo ti crei un valore di indice ( $i ) che si incrementa di 1 ogni volta che viene eseguito il random e salvi il suo valore in un dato di sessione.
A questo punto con un altro controllo fai questo :
Calcoli quante volte e' stao incrementato il valore e ogni tot incrementi, forzi l'estrazione sul valore che ti serve.
Sembra incasinato ma in realta' e' piu' semplice da farsi.
Incasinato sìVVoVe:
provo a farlo io se vuoi...poi tipasso il codice
Ho fatto questo e funziona. Provalo cosi' com'e' e vedi un'po'...ovviamente lo dovrai adattare coi tuoi dati...
fammi sapere.
<?
//require ("_configure/config.cfg.php");
session_start();
//$_SESSION['INDICE']=0;
//echo "session iniziale=".$_SESSION['INDICE']."
";
$dati = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 ,19,20); //qui hai un array con i tuoi valori
$tot = 20; //calcoli il totale dei risultati
$rand = rand(1,$tot); //genera un numero a caso da 1 al numero massimo esistente
echo "random generato iniziale = ".$rand."
";
if($rand != 10) {
$_SESSION['INDICE'] = $_SESSION['INDICE'] + 1;
}
if($_SESSION['INDICE'] <= 3) {
echo "valore casuale=".$dati[$rand]."
";
} else {
if($_SESSION['INDICE'] > 3) {
$_SESSION['INDICE'] = 0;
echo "valore forzato=".$dati[9]."
";
}
}
echo "session_indice=".$_SESSION['INDICE'];
//in questo modo ogni 3 o 4 volte esce il dato fisso che vuoi tu.
?>