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

    Problema JOIN utenti online

    Tabella:
    Codice PHP:
    CREATE TABLE `online` (
        `
    id_nicksmallint unsigned NOT NULL default '1',
        `
    nickvarchar(25NOT NULL default '',
        `
    ipvarchar(40NOT NULL default '',
        `
    timeint unsigned NOT NULL default '0',
        `
    visibletinyint NOT NULL default '0' -- utente invisibile privato )
    )
    TYPE=MyISAM DEFAULT CHARSET=utf8

    Query:
    Codice PHP:
    SELECT
        COUNT
    (n1.nick) as num_guests// Questo campo seleziona i guest
        
    COUNT(n2.nick) as num_hidden// Questo gli utenti "invisibili"
        
    COUNT(n3.nick) as num_users // questo il numero di utenti "visibili"

    FROM     online as n1 
    LEFT JOIN online 
    as n2 ON n2.visible // Seleziona il numero di utenti "invisibili"
    LEFT JOIN online as n3 ON n3.nick <> 'guest' AND n3.visible 0  // Seleziona gli utenti "visibili che non sono guest
    WHERE n1.nick 'guest'// Seleziona i guest 
    Peccato che la query non funziona, mi restituisce 0 sugli utenti "invisibili" e 0 su quelli "visibili". Sui guest funziona...

  2. #2

    Re: Problema JOIN utenti online

    Originariamente inviato da zacca94
    Tabella:
    Codice PHP:
    CREATE TABLE `online` (
        `
    id_nicksmallint unsigned NOT NULL default '1',
        `
    nickvarchar(25NOT NULL default '',
        `
    ipvarchar(40NOT NULL default '',
        `
    timeint unsigned NOT NULL default '0',
        `
    visibletinyint NOT NULL default '0' -- utente invisibile privato )
    )
    TYPE=MyISAM DEFAULT CHARSET=utf8

    Query:
    Codice PHP:
    SELECT
        COUNT
    (n1.nick) as num_guests// Questo campo seleziona i guest
        
    COUNT(n2.nick) as num_hidden// Questo gli utenti "invisibili"
        
    COUNT(n3.nick) as num_users // questo il numero di utenti "visibili"

    FROM     online as n1 
    LEFT JOIN online 
    as n2 ON n2.visible // Seleziona il numero di utenti "invisibili"
    LEFT JOIN online as n3 ON n3.nick <> 'guest' AND n3.visible 0  // Seleziona gli utenti "visibili che non sono guest
    WHERE n1.nick 'guest'// Seleziona i guest 
    Peccato che la query non funziona, mi restituisce 0 sugli utenti "invisibili" e 0 su quelli "visibili". Sui guest funziona...
    Ciao,
    a parte che la sintassi del JOIN che usi è sbagliata.
    Comunque mi sa che per la tua situazione (hai solo una tabella), ti conviene spezzare la query in 3 query.

    Ad esempio
    Codice PHP:
    $result1=mysql_query("SELECT COUNT(nick) AS num_guests FROM online WHERE nick='guest'"); //GUEST
    $result2=mysql_query("SELECT COUNT(nick) AS num_hidden FROM online WHERE visible='1'"); //INVISIBILI
    $result3=mysql_query("SELECT COUNT(nick) AS num_users FROM online WHERE nick!='guest' AND visible='0'"); //VISIBILI GUEST 
    Spero di esserti stato d'aiuto.
    --Cosimo
    MAIL: cosimo.g18@gmail.com

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.