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

    Controllo per ogni record mysql

    Salve, ho due tabelle: users e groups, la prima contiene Username, password, usergroup e la seconda contiene nome e numero.

    Per capirci dovrei far in modo che per ogni record contenuto nella tabella groups viene controllato se username e password esistono e se "usergroup" è uguale ad un record nel campo "numero" della seconda tabella. Per capirci meglio queste due tabelle sono così:
    Username | password | usergroup |
    ---------------------------------
    0-c00l | pswd | 5 |
    ---------------------------------
    E la tabella groups così:
    nome | numero |
    ---------------
    mod | 2 |
    ----------------
    admin | 5 |
    -----------------
    User | 3 |
    Dovrei controllare per ogni record nella tabella groups e sotto al campo numero (quindi 2, 5, 3) se l' usergroup della tabella users è uguale ad uno di quei 3. Se almeno uno di quei 3 corrisponde a usergroup relativo a quell' utente e quella password fa una determinata azione, altrimenti manda un errore. Come posso fare?[/QUOTE]
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non ho capito cosa vuoi fare.

    Mettiamo che tu dalla tabella groups prendi il numero 3, cosa devi fare sulla tabella users con questo 3?

  3. #3
    Utente bannato
    Registrato dal
    May 2011
    Messaggi
    78
    da quel ke ho capito cè un associazione di tipo 1:n

    penso che tu intenda, per l'esempio che hai posto, che o_cool sia un amministratore...

    basta che nella query metti la condizione

    WHERE users.usergroup=groups.numero AND groups.numero=5
    se è quel che ho capito...
    in poche parole usergroups è la chiave esterna riferita a numero

    se non è quello che intendi spiegati meglio

  4. #4
    Sì scusate, ho la necessità in parole povere di controllare se il record sotto il campo "usergroup" della tabella 'users' (riferito ad un utente specifico) è uguale ad almeno uno dei 3 record sotto il campo "numero" della tabella 'groups'
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  5. #5
    Utente bannato
    Registrato dal
    May 2011
    Messaggi
    78
    bhe... se sai che esistono solo 3 tipi di account (non so 1 = admin, 2= user , 3= moderatore) penso che basti usare un semplicissimo if

    if(usergroup!=1 || usergroup!=2 || usergroup!=3)
    {
    echo" fa quello che deve fare";
    .....
    }
    else
    echo"questo tipo di account non esiste";

  6. #6
    Utente bannato
    Registrato dal
    May 2011
    Messaggi
    78
    ma comunque... non fai prima ad avere un attributo chiamato "tipo" di tipo enum nell'entità users....

    del tipo che avrai

    nome | password | tipo
    o-cool | pswd | admin
    rossi | rossi | mod

    no!?

  7. #7
    Per il secondo post no, non posso averlo, quella tabella viene creata da un servizio esterno al mio, se la modifico non funzionerà nulla.

    Per la prima: no non so quanti record ci sono, in realtà pensavo di fare un foreach col fetch_array della query che preleva dalla tabella groups..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  8. #8
    Forse ho trovato la soluzione, non so se funzioni:

    Codice PHP:
    $seleziona_cat mysql_query("SELECT * FROM groups"); // Seleziono le categorie

    while ($ref mysql_fetch_row($seleziona_cat)) {
    $cat_numeri $ref[1]; // La variabile contiene il record sotto il campo "numero"
    $check mysql_query("SELECT * FROM users WHERE username='$username' AND usergroup='$cat_numeri'");
    if(
    mysql_num_rows($check) != 0) {
    $i++; // Se il numero di righe è differente da 0, quindi esiste, incremento $i
    }

    if(
    $i == 0) {
    echo 
    'Non fai parte di nessuna categoria';
    } else {
    // il resto qua

    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  9. #9
    Ottimo funziona, quindi a chi servisse di risolvere questo problema i codici sono quelli postati precedentemente (PS: Ho scordato una graffa dopo la if relativa a mysql_num_rows)
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

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.