Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di mybox
    Registrato dal
    Mar 2007
    Messaggi
    507

    rimuovere autoeliminazione ultimi messaggi

    salve ragazzi ho nella mia chat una funzione che elimina i messaggi dopo un tot di tempo dall'invio per rendere il tutto piu leggero in automatico dal database.
    ora vorrei fare in modo che li elimini,si...ma che lasciasse almeno gli ultimi 20 inviati sempre...questo è l'inizio del mio codice..se per aiutarmi avete bisogno di altro chiedetemi pure...grazie


    Codice PHP:
        addtochat($uid$rid);          $timeto 300;          $timenw time();          $timeout $timenw-$timeto;          $deleted mysql_query("DELETE FROM ibwf_chat WHERE timesent<".$timeout."");          $rooms mysql_fetch_array(mysql_query("SELECT id, name FROM ibwf_rooms WHERE id='".$rid."'"));          $rname $rooms[1];          $nick getnick_sid($sid); 
    Tabella SQL:
    Codice PHP:
    --  -- Table structure for table `community_chat`  --    CREATE TABLE `ibwf_chat` (    `idint(99NOT NULL auto_increment,    `chatterint(100NOT NULL default '0',    `whoint(100NOT NULL default '0',    `timesentint(50NOT NULL default '0',    `msgtextvarchar(255NOT NULL default '',    `ridint(99NOT NULL default '0',    `exposedchar(1NOT NULL default '0',    PRIMARY KEY  (`id`)  ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;    --  -- Dumping data for table `community_chat`  -- 

  2. #2
    non sono un portento in mysql ma andando a logica potresti provare una cosa del genere:

    Codice PHP:
    <?php
    addtochat
    ($uid$rid);
    $timeto 300;          
    $timenw time();          
    $timeout $timenw-$timeto
    $tot_records mysql_query("SELECT COUNT(*) AS totale FROM ibwf_chat") or die(mysql_error()); //Restituisce il numero di records presenti nella tabella
    $row mysql_fetch_assoc($tot_records);  //inserisco il valore nella variabile $row
    if ($row['totale'] > 20// SE ci sono più di 20 record, allora procedo con l'eliminazione
    {
        
    $deleted mysql_query("DELETE FROM ibwf_chat WHERE timesent<".$timeout."");
    }          
    $rooms mysql_fetch_array(mysql_query("SELECT id, name FROM ibwf_rooms WHERE id='".$rid."'"));          
    $rname $rooms[1];          
    $nick getnick_sid($sid);
    ?>
    Ciao
    http://www.sanpaolosassari.it
    Il panino più buono è quello più grande

  3. #3
    Utente di HTML.it L'avatar di mybox
    Registrato dal
    Mar 2007
    Messaggi
    507
    e la query totale la aggiungo come:

    ALTER TABLE chat
    ADD totale CHAR (2000); ???

  4. #4
    no, non c'è nessun bisogno di modificare la tabella mysql.

    quel "AS totale" serve solo per dare una specie di alias al risultato che la query restituisce
    http://www.sanpaolosassari.it
    Il panino più buono è quello più grande

  5. #5
    Utente di HTML.it L'avatar di mybox
    Registrato dal
    Mar 2007
    Messaggi
    507
    beh dopo 300secondi spariscono anche adesso

  6. #6
    Utente di HTML.it L'avatar di mybox
    Registrato dal
    Mar 2007
    Messaggi
    507
    :master:

  7. #7
    Utente di HTML.it L'avatar di mybox
    Registrato dal
    Mar 2007
    Messaggi
    507
    up....

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.