Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    selezione in base ad un array

    Ho una tabella in un db che si compone di

    id
    utente
    nickname_bloccato

    ovvero un utente può decidere se bloccare i messaggi di un altro utente non visualizzandoli...


    come posso fare in modo che mi visualizzi tutti i messaggi nella propria mailbox ma non quelli dell'utente bloccato?

  2. #2
    solitamente èer le relazioni uno a molti conviene fare una apposita tabella.. per cui avrai


    id utente altri dati dell'utente

    id bloccati


    le due tabelle possono essere unite alla bisogna con un join sugli id




  3. #3
    allora la struttura delle 2 tabelle è

    tabella messaggi:

    id
    mitt (mittente)
    dest (destinatario)
    msg (messaggio)
    letto (si/no)
    risp (risposta si/no)

    mentre la struttura della tabella utenti bloccati è

    id
    utente
    nickname_bloccato

    pensavo di fare una query che mi selezioni * dalla tabella blocco con l'opportuno "where utente" = sessione... così ottengo un array che chiamerò, per esempio

    $utenti_bloccati_da_me['nicknamebloccato'];

    poi pensavo di fare

    $non_selezionare = $utenti_bloccati_da_me['nicknamebloccato'];

    "select * from mess where dest = '$nicknameutenteloggato' and mitt != '$non_selezionare'";

    dove
    mess = nome tabella
    nicknameutenteloggato = sessione dell'utente...

    potrebbe funzionare così? :master:

  4. #4

  5. #5
    ripeto:

    Originariamente inviato da }gu|do[z]{®©
    solitamente èer le relazioni uno a molti conviene fare una apposita tabella.. per cui avrai


    id utente altri dati dell'utente

    id bloccati


    le due tabelle possono essere unite alla bisogna con un join sugli id




    perchè tu quati record hai per ogni utente? uno.. giusto?
    e quanti utenti bvbloccati per ogni utente? potenzialmente infiniti....

    e allor anon puoi memorizzare tutto con una sola riga...

    ti serve una riga per memorizzare il tuo utente e i suoi dati... e una riga per memorizzare ognuno degli utenti bloccati, in un'0altra tabella che serve solo a quello....

    poi recupoeri tutto facendo un join.

    quindi.. le tabelle sono quelle che ti ho detto prima (della tabella messaggio non m inetressa troppo)..

    id utente altri dati dell'utente (chiamiamola "utenti")
    id bloccato (chiamiamola "bloccati")

    dove per esempio hai...

    1 ciccio roma bla bla bla
    2 paperino genova bla bla bla
    3 gm terronia bla bla bla
    4 guidoz roma bla bla bla


    e poi..
    1 2 (ciccio blocca paperino)
    1 3 (ciccio blocca gm)
    4 1 (guidoz blocca ciccio)


    gli utenti bloccati per l'utente "ciccio" lo recuperi così:
    select u.utente
    from utenti as u
    join bloccati as b on b.bloccato = u.id
    join utenti as u2 on u2.id = b.id
    where u2.utente like "ciccio"


    giocando in modo simile coi join puoi prendere solo i messaggi il cui destinatario sia ciccio e il mittente non sia nell'insieme di sopra (puoi fare una subquery)

    spero di essere stato chiaro stavolta.


  6. #6
    oddio.. abbastanza.. nn avendolo mai fatto vediamo cosa sarò capace di fare

  7. #7
    altrimenti ho fatto anche così.. ma senza risultati

    http://forum.html.it/forum/showthrea...hreadid=963143

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.