Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Discussione: Random con clausola

  1. #11
    E la tabella?

  2. #12
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    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?

  3. #13
    La tabella c'è, dovrei estrarne i dati.

  4. #14
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    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.

  5. #15
    <?
    //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ì?

  6. #16
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    dovrei sapere cos'e' $row["elemento"];
    e' un numero nel db=? dicevi che potrebbe essere uguale a 10.. a cosa si riferisce questo numero?

  7. #17
    Giusto, allora, la tabella è così:

    ID
    TESTO
    PRIORITA

    Io devo stampare un testo random in base alla priorità.

  8. #18
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    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

  9. #19
    Ma così non tampa 2 testi anzichè 1?

  10. #20
    Mi dà tutti quelli con priorità non 10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.