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

    Estrazione utente con rispettivo gruppo e tempo di connessione

    Ho queste 3 tabelle con i rispettivi valori:

    Codice PHP:
    CREATE TABLE utenti(
    id_utente int unsigned AUTO_INCREMENT NOT NULL default '0',
    id_gruppo tinyint unsigned NOT NULL default '0',
    username varchar(50NOT NULL default '',
    password char(8NOT NULL default '',
    PRIMARY KEY(id_utente)
    );

    INSERT INTO utenti VALUES (11'Alessandro Admin''password');
    INSERT INTO utenti VALUES (22'Luca''password');
    INSERT INTO utenti VALUES (33'Gatsu''password');

    // -----------------------------------------------------------------

    CREATE TABLE gruppi(
    id_gruppo tinyint unsigned AUTO_INCREMENT NOT NULL default '0',
    nome_gruppo varchar(100NOT NULL default '',
    mod_profili tinyint unsigned NOT NULL default '0'// permesso per modificare i profili
    mod_discussioni tinyint unsigned NOT NULL default '0'// permesso per modificare le discussioni
    PRIMARY KEY(id_gruppo)
    );

    INSERT INTO gruppi VALUES (1'Amministratori'11);
    INSERT INTO gruppi VALUES (2'Moderatori'01);
    INSERT INTO gruppi VALUES (2'Utenti'00);

    // -----------------------------------------------------------------

    CREATE TABLE online
    id_utente int unsigned AUTO_INCREMENT NOT NULL 
    default '0',
    tempo_connessione char(10NOT NULL DEFAULT '',
    PRIMARY KEY(id_utente)
    ); 
    E successivamente effettuato questa query, è giusta ? Se è giusta, c'è un modo per farla in modo più elegante?

    Codice PHP:
    $q mysql_query("SELECT u.*, g.mod_profili, g.mod_discussioni, o.* FROM utenti AS u, gruppi AS g, online AS o INNER JOIN u.id_utente = o.id_utente AND u.id_gruppo = g.id_gruppo AND g.id_utente = ".intval($_COOKIE['id']));
    $utente mysql_fetch_array($q);

    if ( 
    $utente['mod_profili'] == OR $utente['mod_discussioni'] == 1  )
    mostra_pannello_amministrativo();
    else
    mostra_pannello_utente();

    // ... MOSTRA GLI UTENTI CONNESSI 

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Infine mi ero scordato di chiedere una cosa:
    E se "gruppi" e "utenti" invece di avere "id_utenti" e "id_gruppi" avessero tutti e due una colonna denominata "id" cosa succederebbe se dovessi stampare l'id degli utenti?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Originariamente inviato da zacca94
    Infine mi ero scordato di chiedere una cosa:
    E se "gruppi" e "utenti" invece di avere "id_utenti" e "id_gruppi" avessero tutti e due una colonna denominata "id" cosa succederebbe se dovessi stampare l'id degli utenti?
    Ti basta specificare degli alias quando esegui la query:

    SELECT gruppi.id AS gid, utenti.id AS uid FROM gruppi, utenti

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    si ma se faccio "u.*" o "g.*" dopo come posso aliasare? in caso volessi creare delle tabelle "grandi" non mi va di riscrivere ogni volta tutte le colonne

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.