Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    problema identificazione utente

    ciao, non riesco a stampare il nome dell'id_login

    Codice PHP:
    <?
    $sql_ins 
    "SELECT ana_utenti.*, a_login.*
            FROM ana_utenti, a_login
            WHERE ana_utenti.id_ana_utenti=
    $utente AND ana_utenti.id_login=a_login.id_login AND a_login.id_ana_utenti=ana_utenti.id_ana_utenti";
        
    $result_ins mysql_query($sql_ins,$conn) or die ($sql_ins);
        
    $row_ins mysql_fetch_array($result_ins);
    ?>
    TABELLA ANA_UTENTI
    id_ana_utenti.............nome.............citta_n ascita.............id_login

    5.............Angelo.............Roma............. 4
    7.............Paolo.............Udine............. 4
    12.............Piero.............Sassari.......... ...4

    TABELLA A_LOGIN
    id_login.............id_ana_utenti

    4.............7

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    up

  3. #3
    Il codice è tutto qua?
    Se devi stampare qualcosa manca almeno una riga di codice atta a stampare il valore (es echo o printf).

    da inserire dopo:
    Codice PHP:
    $row_ins mysql_fetch_array($result_ins); 

    Ti da qualche errore oppure cosa?

    La vairabile $utente è valorizzata?

    Sarebbe stato più conveniente utilizzare il seguente codice per la query:
    Codice PHP:
     $sql_ins "SELECT ana_utenti.nome";
     
    $sql_ins.= " FROM ana_utenti INNER JOIN a_login";
     
    $sql_ins.= " ON(ana_utenti.id_login=a_login.id_login AND ana_utenti.id_ana_utenti=a_login.id_ana_utenti)";
     
    $sql_ins.= " WHERE ana_utenti.id_ana_utenti=".$utente;
            
      
    $result_ins mysql_query($sql_ins,$conn) or die ($sql_ins);
      
    $row_ins mysql_fetch_array($result_ins);
      echo 
    $row_ins[nome]; 

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie Dragon per la risposta, solo che facendo come dici tu mi stampa solo il mio nome che è associato all'id n. 4

    TABELLA ANA_UTENTI
    id_ana_utenti.............nome.............citta_n ascita.............id_login

    5.............Angelo.............Roma............. 4
    7.............Paolo.............Udine.............4
    12.............Piero.............Sassari.......... ...4

    TABELLA A_LOGIN
    id_login.............id_ana_utenti

    4.............7

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    se faccio così

    Codice PHP:
    <?php
    $sql_ins 
    "SELECT ana_utenti.*
                FROM ana_utenti
                INNER JOIN a_login
                ON (ana_utenti.id_login=a_login.id_login)
                WHERE ana_utenti.id_ana_utenti=
    $utente";
        
    $result_ins mysql_query($sql_ins,$conn) or die ($sql_ins);
        
    $row_ins mysql_fetch_array($result_ins);
    ?>
    <?=$row_ins
    ['id_login']?>
    mi stampa l'id giusto, ma a me serve stampare il nome non l'id e facendo così stampa solo il nome dell'id 7 che sarebbe il mio :master:

    Codice PHP:
    <?php
    $sql_ins 
    "SELECT ana_utenti.*
                FROM ana_utenti
                INNER JOIN a_login
                ON (ana_utenti.id_login=a_login.id_login AND a_login.id_ana_utenti=ana_utenti.id_ana_utenti)
                WHERE ana_utenti.id_ana_utenti=
    $utente";
        
    $result_ins mysql_query($sql_ins,$conn) or die ($sql_ins);
        
    $row_ins mysql_fetch_array($result_ins);
    ?>
    <?=$row_ins
    ['nome']?>

  6. #6
    Io avevo capito che a partire dal codice anagrafico utente (id_ana_utenti) dovessi stampare il nome di questo utente.

    Il codice proposto va a stampare il nome dell'utente con id_ana_utenti pari a $utente.

    Se $utente contiene il valore 7, lui va a prelevare i seguenti dati dalle 2 tabelle:

    TABELLA ANA_UTENTI
    id_ana_utenti.............nome.............citta_n ascita.............id_login
    7.............Paolo.............Udine............. 4

    TABELLA A_LOGIN
    id_login.............id_ana_utenti
    4.............7
    Tu invece cosa è che devi stampare di preciso?

    Il nome di un utente o il nome di tutti gli utenti con un certo id_login?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    C'è un'unica anagrafica TABELLA ANA_UTENTI che comprende tutti insieme (l'amministratore, che sarei io e gli utenti). Il mio nome qui ha ID_ANA_UTENTI = 7

    Poi c'è un'altra tabella TABELLA A_LOGIN dove ci sono gli username e le password di tutti compreso la mia per poter logarsi nel sito. Io qui ho ID_LOGIN = 4 e ID_ANA_UTENTI = 7

    Quando inserisco nella tabella ana_utenti un nuovo utente viene incrementato id_ana_utenti e poi viene registrato automaticamente il mio id_login perchè sono stato io ad aver inserito quel nuovo record.

    Ora vorrei che chiunque andasse nella scheda di quell'utente vedesse scritto questa scheda è stata creata dall'id_login 4 che sarei io, solo che al posto dell'id_login vorrei che venisse stampato il mio nome.


    TABELLA ANA_UTENTI
    id_ana_utenti.............nome.............citta_n ascita.............id_login
    5.............Luca.............Udine.............4
    6.............Gennaro........Udine.............4
    7 .............Paolo ............Udine.............4

    TABELLA A_LOGIN
    id_login.............id_ana_utenti
    2.............5
    3.............6
    4 .............7

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    In pratica il percorso dovrebbe essere questo:

    WHERE ana_utenti.id_ana_utenti=$utente

    selezionami solo il record numero 6

    6.............Gennaro........Udine.............4

    Ora dal record numero 6 selezionami chi ha inserito quel record

    ana_utenti.id_login=a_login.id_login

    4 = 4

    AND a_login.id_ana_utenti=ana_utenti.id_ana_utenti

    7 = 7

    <?=$row_ins['nome']?>

    7 = Paolo

  9. #9
    Ok, adesso sei stato abbastanza chiaro e penso di aver capito.

    Analizzandfo la problematica:

    Partendo dal valore di id_ana_utente di un determinato utente (memorizzato nella variabile $utente) si vuole stampare il nome di chi lo ha inserito.
    Tale nome è ricavabile dalla tabella a_login.

    Procedura schematica:

    1. ricavo id_login dell'utente dalla tabella ana_utenti
    2. vado a ricavare il valore di id_ana_utente dalla tabella a_utenti filtrando per id_login.
    3. vado a cercare in tabella [b]ana_utenti[(b] il nome dell'utente con id_ana_utenti appena ricavato.

    Per fare questo si può procedere in più maniere.

    Se non hai già il valore di id_login dell'utente, puoi eseguire la seguente query che utlizza INNER JOIN tra tabelle nidificati:
    Codice PHP:
    $sql_ins "SELECT ana_ins.nome
     FROM (ana_utenti INNER JOIN a_login ON(ana_utenti.id_login=a_login.id_login)) INNER JOIN ana_utenti AS ana_ins ON (ana_ins.id_ana_utenti=a_login.id_ana_utenti)
     WHERE ana_utenti.id_ana_utenti="
    .$utente
    In pratica è come se esegui 2 query.
    la prima query va a ricavare a partire dall'id_ana_utenti dell'utente l'id_ana_utenti del creatore.
    La seconda utilizza questo valore ricercato per andare a ricavare il nome del creatore dalla tabella ana_utenti, ribattezzata tramite alias in ana_ins.

    Se vuoi sapere di più cerca documentazione su "Join annidati" del linguaggio SQL.

    Se invece hai già il valore del campo id_login dell'utente (magari lo hai ricavato mentre popoli la pagina della scheda dell'utente) basta che esegui questa "semplice" query:
    Codice PHP:
    $sql_ins "SELECT ana_utenti.nome
    FROM (ana_utenti INNER JOIN a_login ON(ana_utenti.id_ana_utenti=a_login.id_ana_utenti)) 
    WHERE a_login.id_login="
    .$id_login_utente
    Spero di esserti stato utile e almeno questa di aver centrato il problema

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Grazie DragonOfLight!
    La prima query funziona alla grande!!!


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.