Visualizzazione dei risultati da 1 a 6 su 6

Discussione: HELP!!! query

  1. #1

    HELP!!! query

    Salve ragazzi ho un problema ... MI STO' INCARTANDO ...
    Ho 3 tabelle identiche 'coll,doc,staff' nelle quali inserisco dei file per il download e una quarta tabella per le statistiche.
    Io NON RIESCO a fare una query che mi permetta di filtrare le statistche.
    Mi serve:
    nome e cognome dell'utente , il nome del file scaricato, il numero di scarichi, tabella da cui è stato scaricato
    vorrei gestire il tutto con dei <select>..

    HELP!!!

    ciao giovanni


    # Struttura della tabella `coll`


    CREATE TABLE `coll` (
    `id` int(5) unsigned NOT NULL auto_increment,
    `descrizione` varchar(255) NOT NULL default '',
    `user_id` int(10) NOT NULL default '0',
    `dati_binari` mediumblob NOT NULL,
    `nome` varchar(50) NOT NULL default '',
    `size` int(11) NOT NULL default '0',
    `type` varchar(50) NOT NULL default '',
    `input_time` int(12) NOT NULL default '0',
    PRIMARY KEY (`id`)
    )


    # Struttura della tabella `doc`


    CREATE TABLE `doc` (
    `id` int(5) unsigned NOT NULL auto_increment,
    `descrizione` varchar(255) NOT NULL default '',
    `user_id` int(10) NOT NULL default '0',
    `dati_binari` mediumblob NOT NULL,
    `nome` varchar(50) NOT NULL default '',
    `size` int(11) NOT NULL default '0',
    `type` varchar(50) NOT NULL default '',
    `input_time` int(12) NOT NULL default '0',
    PRIMARY KEY (`id`)
    )

    # Struttura della tabella `staff`


    CREATE TABLE `staff` (
    `id` int(5) unsigned NOT NULL auto_increment,
    `descrizione` varchar(255) NOT NULL default '',
    `user_id` int(10) NOT NULL default '0',
    `dati_binari` mediumblob NOT NULL,
    `nome` varchar(50) NOT NULL default '',
    `size` int(11) NOT NULL default '0',
    `type` varchar(50) NOT NULL default '',
    `input_time` int(12) NOT NULL default '0',
    PRIMARY KEY (`id`)
    )

    # Struttura della tabella `stat`


    CREATE TABLE `stat` (
    `user_id` int(10) unsigned NOT NULL default '0',
    `table` varchar(15) NOT NULL default '',
    `file_id` int(10) unsigned NOT NULL default '0',
    KEY `user_id` (`user_id`,`table`,`file_id`)
    )

    # Struttura della tabella `utenti`

    CREATE TABLE `utenti` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `name` varchar(30) NOT NULL default '',
    `surname` varchar(30) NOT NULL default '',
    `username` varchar(30) NOT NULL default '',
    `PASSWORD` varchar(32) NOT NULL default '',
    `indirizzo` varchar(100) NOT NULL default '',
    `occupazione` varchar(100) NOT NULL default '',
    `temp` set('0','1') NOT NULL default '',
    `regdate` varchar(11) NOT NULL default '',
    `uid` varchar(32) NOT NULL default '',
    `permessi` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`),
    KEY `username` (`username`,`PASSWORD`)
    )

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    con le tabelle così strutturate al massimo puoi ottenere nome, cognome (presi da user) ed il nome della tabella (preso da stat).
    per avere il nome del file devi sapere a priori il nome della tabella nella quale è contenuto; devi quindi eseguire prima una query per avere il nome della tabella, poi con questo puoi sapere il nome del file.
    inoltre chiamando un campo 'table' mySQL genera dei problemi...

    codice:
    SELECT utenti.name,utenti.surname,stat.tabella FROM stat
    INNER JOIN utenti ON utenti.id = stat.user_id

    think simple think ringo

  3. #3
    Ho pensato che potrei utilizzare solo una tabella per i file aggiungendo un campo "origine". Avere tre tabelle mi complica solo la vita.
    che ne pensi marketto.

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da carky
    Ho pensato che potrei utilizzare solo una tabella per i file aggiungendo un campo "origine". Avere tre tabelle mi complica solo la vita.
    che ne pensi marketto.
    già già
    think simple think ringo

  5. #5
    Marketto ho ancora un problemino

    ho fatto i cambiamenti alle tabelle e relativi files

    function get_stat_list(){
    global $_CONFIG;
    $result = mysql_query("
    SELECT utenti.name,utenti.surname,download.nome,stat.orig ine FROM stat
    INNER JOIN utenti ON utenti.id = stat.user_id
    INNER JOIN download ON download.id = stat.file_id
    ");
    $data = array();
    while($tmp = mysql_fetch_assoc($result)){
    array_push($data, $tmp);
    };
    return $data;
    }

    so inserire dei filtri,
    es
    WHERE utenti.id='1'
    oppure
    WHERE stat.origine='1'

    come faccio a fare count dei download?

    grazie ancora

  6. #6
    Ho risolto alla grande.
    Grazie marketto

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.