E la tabella?
E la tabella?
quello che ho fatto io e' la parte funzionale diciamo e se provi funziona.. se devi fare una tabella basta che fai stampare i tag necessari per crearla al posto dei soli dati che ho messo io no?
La tabella c'è, dovrei estrarne i dati.
a ok , la tabella db. estrai i dati e al posto di qull'array che ho fatto io ne fai uno che si riempie coi dati estratti.. e poi lo usi come meglio credi.
<?
//require ("_configure/config.cfg.php");
$query = "SELECT * FROM Tabella
$result = mysql_query($query, $db);
$tot = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
$elemento = $row["elemento"];
}
session_start();
//$_SESSION['INDICE']=0;
//echo "session iniziale=".$_SESSION['INDICE']."
";
$dati = array($elemento); //qui hai un array con i tuoi valori
$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.
?>
Più o meno così?
dovrei sapere cos'e' $row["elemento"];
e' un numero nel db=? dicevi che potrebbe essere uguale a 10.. a cosa si riferisce questo numero?
Giusto, allora, la tabella è così:
ID
TESTO
PRIORITA
Io devo stampare un testo random in base alla priorità.
cosi' ti stampi una tabella con uno dei testi con priorita forzata ogni 4 record.
//estrai tutte le news con priorita' diversa da quella da forzare
$select = "SELECT * FROM tabella WHERE priorita != 10";
$query = mysql_query($select) or die (mysql_error());
$tot = mysql_num_rows($query); // totale notizie. Facciamo una 30ina di notizie.
$i=0;
while($result = mysql_fetch_array($query)) {
$i++;
$id[$i] = $result['id'];
$testo[$i] = $result['testo'];
}
//qui estrai tutte le news con priorita' forzata
$select_priorita = "SELECT * FROM tabella WHERE priorita = 10";
$query_priorita = mysql_query($select_priorita) or die (mysql_error());
$i=0;
while($result_priorita = mysql_fetch_array($query_priorita)) {
$i++;
$id_priorita[$i] = $result_priorita['id'];
$testo_priorita[$i] = $result_priorita['testo'];
}
$tot_priorita = mysql_num_rows($query_priorita); //tot news con priorita' 10
echo "<table>";
echo "<tr>";
echo "<td>id</td>";
echo "<td>testo</td>";
echo "</tr>";
$indice = 0;
for($i=1;$i<=$tot;$i++){
$indice++;
echo "<tr>";
//stampo le news con priorita' qualsiasi per 4 volte
if($indice <= 3) {
echo "<td>".$id[$i]."</td>";
echo "<td>".$testo[$i]."</td>";
} else {
//quando indice raggiunge 3 forzo una news a caso fra quelle con priorita' 10 e riporto indice a zero
if($indice = 3){
$indice=0;
$rand = rand(1,$tot_priorita);
echo "<td>".$id_priorita[$rand]."</td>";
echo "<td>".$testo_priorita[$rand]."</td>";
}
}
echo "</tr>";
}
echo "</table>";
dimmi se ti trovi, poi devi adattarla ai tuoi dati
Ma così non tampa 2 testi anzichè 1?
Mi dà tutti quelli con priorità non 10![]()