Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Selezionare una sola sessione per utente

    Come da allegato se cancello i cookie manualmente con la sessione invece di fare il logout (permettendomi di cancellare la sessione) mi fa questo brutto scherzo...
    Posso selezionare solo 1a volta e il valore più "nuovo" tramite sql o devo risolvere con php?

    La query che eseguo è questa:

    SELECT s.*, url.url_self AS user_url, u.user_nickname, u.user_hidden
    FROM sessions AS s
    INNER JOIN users AS u ON (s.sess_uid = u.user_id)
    LEFT JOIN urls AS url ON (u.user_id = url.url_info_id AND url.url_info = 'user') WHERE s.sess_time > '%d'

    La tabella sessioni è questa:
    CREATE TABLE sessions(
    sess_key char(32) NOT NULL default '',
    sess_ip varchar(50) NOT NULL default '',
    sess_agent tinytext NOT NULL default '',
    sess_time int(10) unsigned NOT NULL default '0',
    sess_group tinyint(3) unsigned NOT NULL default '0',
    sess_hidden enum('0', '1') NOT NULL default '0',
    sess_uid mediumint(8) unsigned NOT NULL default '0',
    sess_selfurl tinytext NOT NULL,
    sess_infourl varchar(50) NOT NULL default '',
    sess_titleurl tinytext NOT NULL,
    PRIMARY KEY (sess_key)
    )ENGINE=MyISAM;
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    287
    Quote Originariamente inviata da zacca94 Visualizza il messaggio
    Come da allegato se cancello i cookie manualmente con la sessione invece di fare il logout (permettendomi di cancellare la sessione) mi fa questo brutto scherzo...
    Posso selezionare solo 1a volta e il valore più "nuovo" tramite sql o devo risolvere con php?

    La query che eseguo è questa:

    SELECT s.*, url.url_self AS user_url, u.user_nickname, u.user_hidden
    FROM sessions AS s
    INNER JOIN users AS u ON (s.sess_uid = u.user_id)
    LEFT JOIN urls AS url ON (u.user_id = url.url_info_id AND url.url_info = 'user') WHERE s.sess_time > '%d'

    La tabella sessioni è questa:
    CREATE TABLE sessions(
    sess_key char(32) NOT NULL default '',
    sess_ip varchar(50) NOT NULL default '',
    sess_agent tinytext NOT NULL default '',
    sess_time int(10) unsigned NOT NULL default '0',
    sess_group tinyint(3) unsigned NOT NULL default '0',
    sess_hidden enum('0', '1') NOT NULL default '0',
    sess_uid mediumint(8) unsigned NOT NULL default '0',
    sess_selfurl tinytext NOT NULL,
    sess_infourl varchar(50) NOT NULL default '',
    sess_titleurl tinytext NOT NULL,
    PRIMARY KEY (sess_key)
    )ENGINE=MyISAM;

    ciao, non ho capito che vuoi fare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Ho la lista degli utenti online, seleziono le sessioni, come da query postata.
    Se l'utente fa il login crea la sessione, se fa il logout, la distrugge, o si distrugge se vecchia...

    Il problema è che se cancello la sessione tramite cookie (quindi non dando la possibilità a php di cancellare la sessione) e faccio il log-in, mi crea due sessioni valide. Come posso fare per selezionare solo una sessione che appartiene allo stesso utente?
    Per il momento ho risolto con php. Ma preferirei farlo con sql

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 © 2026 vBulletin Solutions, Inc. All rights reserved.