Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122

    [MySQL] Non permette cancellazioni multiple


    Colleghi PHPisti buondì

    ho un problema che mi turba.
    Sto sviluppando una classe con OOP 5 sugli utenti on line ma c'è qualcosa che non mi torna.
    Ho una tabella dove conto e verifico gli utenti on line, quindi li aggiungo e li cancello verificando il range di tempo da me imposto. Quando si tratta di aggiungere gli utenti va tutto bene, il poblema nasce quando li voglio cancellare. Me li cancella solo una volta anche se è dentro un ciclo WHILE e se la condizione IF è rispettata. Pare quasi che dopo un DELETE mi vada fuori dal ciclo.
    Questo è il codice:

    Codice PHP:
    $time time();
    if(
    $this->get_db_stat('onlinecount') > 0) {
            while(
    $row_d $this->db->sql_fetch_row($result)) {
                echo 
    "Dentro WHILE delete
    "
    ;
                
    $user_time $row_d['online_time'];
                
    $range_time time() - $user_time;
                if(
    $range_time $this->gb_config['online_seconds']) {
                    
    $sql "DELETE FROM " ONLINE_TABLE " WHERE online_time = '$user_time'";
                    if(
    $result $this->db->sql_query($sql)) {
                        echo 
    "CANCELLATO 
    "
    ;
                    }
                }
            }

    Perchè dopo che mi cancella un record mi esce dal ciclo WHILE? :master:
    E' normale?
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  2. #2
    è probabile che il fetch_rows restituisca solo un record
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  3. #3
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da bonaprogram
    è probabile che il fetch_rows restituisca solo un record

    ho provato a fare una prova...ho 3 record e voglio cancellarli tutti e 3 senza IF e nient'altro.
    Un ciclo WHILE con dentro una SQL di cancellazione. Me ne cancella 1 e poi esce dal ciclo WHILE. Perchè?
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  4. #4
    prova a mettere degli else agli if, per controllare se esce dal while o semplicemnte non rientra nell'if
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  5. #5
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122

    Non l'avrei mai detto...MySQL non accetta delete multipli dentro a cicli WHILE o FOR!
    Ovvero non si può fare una cosa di questo genere
    Codice PHP:
    for(....) {
         
    $sql "DELETE FROM TABLE WHERE ...";
         
    $restult // eseguo query

    Stessa cosa per il WHILE! Alla prima esecuzione di DELETE ti va fuori dal ciclo e questo non lo sapevo

    Io personalmente sono riuscito a risolvere il problema immettendo la condizione direttamente nella query
    Codice PHP:
    $sql "DELETE FROM " ONLINE_TABLE " WHERE online_time < ". (time()-$this->gb_config['online_seconds']); 
    Se qualcuno comunque può dirmi il motivo ne sarei grato dato che io non l'ho capito


    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  6. #6
    devi usare il foreach
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

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.