Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: UPDATE MySql

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    190

    UPDATE MySql

    TABLE MYSQL:

    CREATE TABLE visite_tot
    (
    pagina VARCHAR(50)default NULL,
    visite INT(10) DEFAULT 0 NOT NULL
    )

    Codice PHP:
    /* --- VISITE TOTALI --- */
        
    $res mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina'"); 
        
        if (!
    mysql_num_rows($res))
        { 
        
    // nessuna visita presente nella tabella e impostiamo 1
        
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', '1')");
        }
    /* --- FINE --- */ 
    Soltanto che ogni volta invece di aggiornare la riga stessa della tabella, ne crea una (aggiornata).
    Cioè:
    pagina|visite
    fotografie|3
    fotografie|2
    fotografie|1

    Invece che:

    pagina|visite
    fotografie|3

    Come mai? Come posso risolvere?

  2. #2
    Ciao, prova a sostituire mysql_num_rows con mysql_affected_rows

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    190
    Originariamente inviato da Simo990
    Ciao, prova a sostituire mysql_num_rows con mysql_affected_rows
    Fatto, purtroppo nulla, stesso risultato

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    190
    Originariamente inviato da Simo990
    Ciao, prova a sostituire mysql_num_rows con mysql_affected_rows
    Allora, ho capito come mai accade, perchè mysql_num_rows/mysql_affected_rows genera sempre un nuovo ID. Come posso risolvere?

  5. #5
    Una soluzione potrebbe essere:

    Fai prima una query sul DB per la Pagina che ti interessa ( una SELECT * FROM...)

    Se non trovi nulla fai un INSERT
    se trovi qualcosa fai un UPDATE
    Pubblicizza, Promuovi e Valuta il tuo sito su WebPortale
    Strategie e Consigli sul Gioco Manageriale di F1 GPRO GPRO STRATEGY
    Sito sulla Borsa con Gioco FantaBorsa Gioco-Borsa

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    190
    Originariamente inviato da xenox75
    Una soluzione potrebbe essere:

    Fai prima una query sul DB per la Pagina che ti interessa ( una SELECT * FROM...)

    Se non trovi nulla fai un INSERT
    se trovi qualcosa fai un UPDATE
    Cosi facendo:
    Codice PHP:
        /* identifichiamo la pagina */
        
    $pagina $sub;
        
        
    /* --- VISITE TOTALI --- */
        
        
    $res mysql_query("SELECT * FROM visite_tot") or die(mysql_error());
        
        if (!
    mysql_affected_rows($res))
        { 
                
    // nessuna visita presente nella tabella e impostiamo 1
                
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', 1)") or die(mysql_error());
        }
        else 
        {
                
    // se sono presenti visite nella tabella, aggiorniamo la tabella aggiungendo alla visita +1
                
    mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina' ") or die(mysql_error());
        }
        
        
    /* --- FINE --- */ 
    Appare ogni volta una nuova riga con 1

  7. #7
    Prova a scrivere così:

    $sql = mysql_query("SELECT * FROM visite_tot WHERE pagina = '$pagina'") or die ('Error: '.mysql_error ());
    $Ris = mysql_fetch_array($sql);

    if (($Ris[1] == "")||($Ris[1] <> $pagina))
    {
    // nessuna visita presente nella tabella e impostiamo 1
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', 1)") or die(mysql_error());
    }
    else
    {
    // se sono presenti visite nella tabella, aggiorniamo la tabella aggiungendo alla visita +1
    mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina' ") or die(mysql_error());
    }
    Pubblicizza, Promuovi e Valuta il tuo sito su WebPortale
    Strategie e Consigli sul Gioco Manageriale di F1 GPRO GPRO STRATEGY
    Sito sulla Borsa con Gioco FantaBorsa Gioco-Borsa

  8. #8
    anzi così:

    $sql = mysql_query("SELECT pagina FROM visite_tot WHERE pagina = '$pagina'") or die ('Error: '.mysql_error ());
    $Ris = mysql_fetch_array($sql);

    if (($Ris[0] == "")||($Ris[0] <> $pagina))
    {
    // nessuna visita presente nella tabella e impostiamo 1
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', 1)") or die(mysql_error());
    }
    else
    {
    // se sono presenti visite nella tabella, aggiorniamo la tabella aggiungendo alla visita +1
    mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina' ") or die(mysql_error());
    }
    Pubblicizza, Promuovi e Valuta il tuo sito su WebPortale
    Strategie e Consigli sul Gioco Manageriale di F1 GPRO GPRO STRATEGY
    Sito sulla Borsa con Gioco FantaBorsa Gioco-Borsa

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    190
    Originariamente inviato da xenox75
    anzi così:

    $sql = mysql_query("SELECT pagina FROM visite_tot WHERE pagina = '$pagina'") or die ('Error: '.mysql_error ());
    $Ris = mysql_fetch_array($sql);

    if (($Ris[0] == "")||($Ris[0] <> $pagina))
    {
    // nessuna visita presente nella tabella e impostiamo 1
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', 1)") or die(mysql_error());
    }
    else
    {
    // se sono presenti visite nella tabella, aggiorniamo la tabella aggiungendo alla visita +1
    mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina' ") or die(mysql_error());
    }
    Grazie Mille!
    Ho provato entrambi, però continua, incredibilmente, ad avere il problema.
    (Se puo servire) Tabella MySQL:

    CREATE TABLE visite_tot
    (
    pagina VARCHAR(50)default NULL,
    visite INT(10) DEFAULT 0 NOT NULL
    )

  10. #10
    Ma anche in questo caso ti crea sempre righe nuove?
    Pubblicizza, Promuovi e Valuta il tuo sito su WebPortale
    Strategie e Consigli sul Gioco Manageriale di F1 GPRO GPRO STRATEGY
    Sito sulla Borsa con Gioco FantaBorsa Gioco-Borsa

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.