Visualizzazione dei risultati da 1 a 7 su 7

Discussione: segnare topic letti

  1. #1

    segnare topic letti

    ciao a tutti,
    ho creato un forum e vorrei dare la possibilità agli utenti di visualizzare tutti gli argomenti nuovi contrassegnandoli con un link diverso rispetto quelli già letti
    chi mi da qualche info a riguardo?

  2. #2
    puoi creare una nuova tabella

    id_utente id_topic ultimo_accesso


    poi basta controllare i post di un topic che hanno la data creazione > di ultimo_accesso


    (ovviamente quando un utente "legge" un topic refreshi la tabella)
    www.gext.it

  3. #3
    ciao,
    ho creato la tabella topic_letti

    codice:
    create table topic_letti(
    tID int not null primary key auto_increment,
    id_topic int references topics(topicId),
    id_user int references utenti(userId),
    ultimo_accesso_data date,
    ultimo_accesso_ora time
    );
    quando leggo il topic ho inserito questo pezzo di codice

    Codice PHP:
    $user_id=$riga["userId"]; //recupero l'id dell'user da una query
    $topic_id $_GET["topic_id"]; //acquisizione dell'id del topic
    $data date("Y-m-d"); 
    $time date("H:i:s");
    //controllo prima se nella tabella topic_letti c'è già il topic in questione cliccato dall'utente $user_id 
    $select001 mysql_query("SELECT * FROM topic_letti WHERE id_topic = $topic_id AND id_user = $user_id ");
    $fetch001 mysql_fetch_array($select001);
    if(
    $fetch001//se è stato gia visualizzato lo aggiorno
        

            
    $update_table mysql_query("UPDATE topic_letti SET id_user = ".$user_id.", id_topic = ".$topic_id.", ultimo_accesso_data = '".$data."', ultimo_accesso_ora = '".$time."' WHERE id_topic = $topic_id AND id_user = $user_id ");
        } else 
            { 
    //altrimenti inserisco il record
                
    $insert001 mysql_query("INSERT INTO topic_letti(id_user, id_topic, ultimo_accesso_data, ultimo_accesso_ora) VALUES($user_id$topic_id, '$data', '$time') ");
            } 
    nella pagina vediforum.php dove stampo l'elenco dei topic ho inserito questo codice

    Codice PHP:
    if(isset($_SESSION["nikname"]))
        { 
            
    $nikname $_SESSION["nikname"]; 
            
    $user_query mysql_query("SELECT * FROM utenti WHERE username = '$nikname' ");
            
    $user_fetch mysql_fetch_array($user_query);
            
    $userID $user_fetch["userId"]; //recupero l'userID dell'utente connesso 
            
    //lo confrtonto nella tabella topic_letti
            
    $select mysql_query("SELECT * FROM topic_letti WHERE id_user = $userID ");
            
    $fetch mysql_fetch_array($select);
            
                
    //se l'ora dell'ultima visita del topic è minore di quella di connessione dell'utente dell'utente allora è stato già letto e assegno la cartella grigia
            
    if($fetch["ultimo_accesso_ora"] > $riga["ultimaVisitaOra"])
                 {
                    
    $folder "folder.gif";
                } 
                    else
                     { 
    //altrimenti assegno quella rossa
                         
    $folder "folder_new.gif";
                     }
        } else 
            { 
                
    $folder "folder.gif";
            } 
    ma il tutto sembra non funzionare, avrò sicuramente commesso qualche errore

  4. #4
    controlla sta query

    SELECT * FROM topic_letti WHERE id_user = $userID


    manda il where id_topic = $topicID
    www.gext.it

  5. #5

  6. #6

  7. #7
    almeno sai isolare il problema??

    la visita viene aggiornata o no?
    www.gext.it

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.