Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    creare un sistema di condivisione

    Ragazzi ho un problema più che altro mi manca la logica per arrivarci penso come struttura il database, allora vi spiego:
    devo creare 2 pagine, la prima in cui l'amministratore del sito inserisce i suoi file e SCEGLIE CON QUALE UTENTE CONDIVIDERLO, mentre la seconda pagina sarebbe quello dell'utente che vede i file che l'amministratore a condiviso con lui. Ora io ho gia fatto la sezione dell'amministratore e ho pure fatto la sezione dell'utente, però non riseco a capire invece come far scegliere all'amministratore con chi condividere i suoi file.

    Il mio database è strutturato cosi al momento:
    tabella_amministratore:
    id
    user
    pass

    l'amministratore per fortuna e unico!

    tabella_utenti:
    id
    nome
    cognome
    mail
    user
    pass

    quindi io dovrei creare un pagina gestita da un unico amministratore, composta cosi al meno penso:

    -carica file
    -scegli con quale utente condividerlo

    pagina utente
    -vede quello che l'amministratore ha condiviso con lui


    spero di essermi spiegata bene... come mi consigliate di andare avanti?

  2. #2
    mi sa che il lavoro qua è appena all'inizio

    provo a suggerire quindi, per fare il prossimo passo, una soluzione per completare la struttura database

    Innanzitutto ti servirà una tabella dove schedare i files, quindi per esempio sulla falsariga di quelle che hai già creato:

    tabella_files:
    id
    id_proprietario
    nomefile
    percorso
    tipofile
    pubblicato

    e questa andrà compilata inserendo nel campo "id_proprietario" l'id corrispondente all'amministratore, ovviamente questo ha senso se ci sono più amministratori, altrimenti salta pari pari questo campo.
    inoltre il campo "pubblicato" in fondo credo possa essere utile per nascondere un file a tutti quanti in una botta sola ma in maniera magari solo temporanea.
    ... ma torniamo alla struttura ...

    creata la tabella dei files ora hai il "chi" e il "cosa", mancano i legami, suggerisco una struttura molti-a-molti, per esempio quindi

    tabella_legami:
    id
    id_utente
    id_file

    e in questa tabella beh, mi sembra abbastanza chiaro cosa dovrai inserire.

    A questo punto credo che la struttura db sia abbastanza completa, con una query su quest'ultima tabella dei legami, filtrata con id_utente dell'utente che si logga sulla pagina specifica per gli utenti, avrai l'elenco dei files che l'amministratore voleva condividere con quell'utente

    Contemporaneamente sulla pagina di caricamento di un nuovo file suggerisco di stampare il risultato della select (completa) sulla tabella degli utenti, di modo che avrai magari un campo checkbox per ciascun utente, così sarà semplice poi andare a compilare la tabella legami.


    come dicevo all'inizio, questo è solo il secondo passo, ma la strada è ancora lunga, il mio aiuto, spero utile, è solo una traccia, di lavoro ne hai ancora parecchio

    bye !

  3. #3
    mmm grazie del tuo aiuto, facciamo cosi io cerco di procedere, se non dovessi farcela e se non ti da fastidio ti posso contattare?

  4. #4
    Luca c'è lo fatta sai.. o almeno in parte cioè riesco a far condividere i file all'amministratore fatto cosi:
    una pagina in cui faccio una query e mi estraggo tutti gli utenti, accanto ho inserito una voce "condividi file con questo utente" cosi appena clicca mi ricavo l'id dello utente e carico l'altro pagina in cui faccio inserire i file che vuole, e poi faccio la query con il file appena caricato da mettere con l'id del utente.

    Bene questa va benissimo se io volessi condividere i file con uno utente, ma se io volessi invece direttamente condividere con 3-4 utenti, avevo pensato di fare una query e inserirli in un <select> con l'id e username dell utente, solo che si presentano 2 problemi:

    1) il primo posso scegliere solo un altro utente
    2) quando eseguo la query, posso mettere 2 id nel campo utenti_id? dato che utente_id e un campo INT

    questo è quello che mi domando...

  5. #5
    ciao Jigu, sono contento che il mio suggerimento ti abbia aiutato
    vediamo se ci riesco ancora

    dunque, una select in sè è molto restrittiva, le soluzioni che mi vengono in mente sono numerose, ma forse una abbastanza semplice può essere questa qua che ti porto come esempio:

    codice:
    <form action="..." method="post">
    File da caricare: <input type="file" name="nuovofile" value="" />
    
    
    
    Scegli uno o più utenti con cui condividerlo:
    
    [NomeUtente 1] <input type="checkbox" name="id_ute_<?= $id_utente [1]; ?>" value="S" />
    
    [NomeUtente 2] <input type="checkbox" name="id_ute_<?= $id_utente [2]; ?>" value="S" />
    
    [NomeUtente 3] <input type="checkbox" name="id_ute_<?= $id_utente [3]; ?>" value="S" />
    
    [NomeUtente 4] <input type="checkbox" name="id_ute_<?= $id_utente [4]; ?>" value="S" />
    
    [NomeUtente 5] <input type="checkbox" name="id_ute_<?= $id_utente [5]; ?>" value="S" />
    
    
    
    <input type="submit" value="Carica e condividi" />
    </form>
    in pratica crei una lista partendo dalla query che hai dell'elencazione degli utenti
    di ciascun utente stampi il nome prima, poi a fianco nel checkbox metti l'id nella parte finale del "name" (nell'esempio sopra qualche piccola parte di codice PHP, meno di così non ce l'ho fatta)
    Sul post di questo form avrai quindi un array tipo

    Array
    (
    [id_ute_2] => S
    [id_ute_4] => S
    )
    e ti basterà fare un ciclo sul $_POST estraendo tutte le variabili che trovi che si chiamano id_ute_0000 il cui valore è "S". Bene, piglia quelle variabili, smontane il nome e il numero in fondo è l'id dell'utente che l'amministratore ha selezionato

    magia

  6. #6
    mmm...aspetta ma quando andrà a fare la query che inserisce l'id dell'utente, se è più di uno come fa a faro entrare nel db, dato che il campo nel db è di tipo INT, INT può accettare numeri cosi utente_id = 3,8,9,24 ?? questo è che non ho capito?

  7. #7
    come fai un loop per leggere quell'array, per ogni ID che trovi fai una query specifica
    quindi tante query quanti checkbox sono stati spuntati

    perdonami, mi sembrava ovvio

  8. #8
    No, devi mettere un id in ogni riga...esempio, l'utente 1 condivide il file con 3,5,7,9:


    ID, id_utente, id_file
    1,3,1
    2,5,1
    3,7,1
    4,9,1




    Ciao!

  9. #9
    ah ma quindi devo creare una query per ogni utente scelto con il checkbox, quindi mettiamo che lo vuole condividere con 10 utenti devo far generare 10 query? che si differenziano solo nel id_utente?

  10. #10
    esatto.
    potresti anche fare un campo di tipo diverso e separare i valori con una virgola ad esempio, ma è di gestione meno immediata.
    Ciao!

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.