Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Query con filtro

  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    Query con filtro

    Ciao a tutti ho questo problema

    Ho una tabella che mantiene traccia dei file scaricati dagli utenti sul sito. Ora vorrei realizzare una tabella riepilogativa in modo da poter visualizzare quante volte è stato scaricato un file.

    Vorrei quindi che la query recuperi tutti i valori all'interno della tabella download, mostri solo una riga per valore ("nascondendo i duplicati") e contasse i record con lo stesso nome del file (non l'id perchè lo stesso id mi può identificare 2 file con lo stesso nome, ma di tipo differente)

    Avete qualche idea?

    Per ora sono riuscito a visualizzare qualcosa tipo questo:

    file pippo.zip scaricato 3 volte
    file pippo.zip scaricato 3 volte
    file pippo.zip scaricato 3 volte
    file pippo.exe scaricato 5 volte
    file pippo.exe scaricato 5 volte
    file pippo.exe scaricato 5 volte
    file pippo.exe scaricato 5 volte
    file pippo.exe scaricato 5 volte
    file pluto.zip scaricato 2 volte
    file pluto.zip scaricato 2 volte
    ecc....

    Il sistema "funziona", ma non mi frega nulla di vedere per n volte quante n volte è stato scaricato un file anche perchè ci sono file scaricati più di 100 volte ed ovviamente stampare 100 righe uguali non ha senso.

    Grazie in anticipo

    a proposito questo è il codice che sto usando
    Codice PHP:
    $queryStat=mysql_query("select from download, nomefile, categoria where dwl_file_id=file_id and file_cat_id=cat_id order by dwl_file_id;"connectToDb());

    while(
    $rowStat=mysql_fetch_array($queryStat)) {
      
    $idFile $rowStat['file_id'];
      
    $nomeFile htmlentities($rowStat['file_titolo'], ENT_QUOTES"ISO-8859-15");
      
    $nomeCategoria htmlentities($rowStat['cat_descrizione'], ENT_QUOTES"ISO-8859-15");
      
      
    $numFile=mysql_query("select * from download, nomefile where dwl_file_id=file_id and dwl_file_id='$idFile';"connectToDb());
      
    $numeroDwl=mysql_num_rows($numFile);
      
      echo 
    $nomeFile." - ".$nomeCategoria." scaricato ".$numeroDwl." volte
    \n"
    ;


  2. #2
    Ciao,
    devi utilizzare il costrutto SQL "Group By" nella query che tira fuori i nomi dei file.
    Prova a cambiare

    Codice PHP:
    select from downloadnomefilecategoria where dwl_file_id=file_id and file_cat_id=cat_id order by dwl_file_id
    in

    Codice PHP:
    select from downloadnomefilecategoria where dwl_file_id=file_id and file_cat_id=cat_id group by nomefile
    --Cosimo
    MAIL: cosimo.g18@gmail.com

  3. #3
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Così non funzionava, ma con un po' di ritocchi grazie alla dritta group by ora funziona.

    Vorrei però mostrare i risultati in ordine di download

    Se un file è scaricato 100 volte dovrebbe comparire prima di quello scaricato 80 e così via sino a quelli mai scaricati. c'è un modo?

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.