Visualizzazione dei risultati da 1 a 5 su 5

Discussione: relazioni in db mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    15

    relazioni in db mysql

    Salve ragazzi volevo esporvi il mio problema:
    ho creato 2 dabelle in un db mysql

    la prima è file_doc

    id_doc int 11 not_null autoincrement primary key
    file varchar 250
    data varchar 10
    com text

    la seconda e' docenti

    id_doc int 11 not_null autoincrement primary key
    nome varchar 250
    cognome varchar 250
    docente varchar 250





    il mio grande problema è che quando vado a richiamare la query in questo modo:

    [PHP]
    $query="SELECT docenti.nome, docenti.cognome , file_doc.data, file_doc.com, file_doc.file FROM docenti, file_doc WHERE docenti.id_doc = file_doc.id_doc;";

    $select=mysql_query($query,$conn)
    or die($query);
    while($records=mysql_fetch_array($select)){


    ?>
    </td>
    </tr>
    </table>
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><?php echo $records["nome"];?></td>
    </tr>
    <tr>
    <td><?php echo $records["cognome"];?></td>
    </tr>
    <tr>
    <td><?php echo $records["data"];?></td>
    </tr>
    <tr>
    <td><?php echo $records["com"];?></td>
    </tr>
    <tr>
    <td><?php echo $records["file"];?></td>
    </tr>
    <tr>
    <td>
    <?php
    }
    mysql_free_result($select);
    ?>


    all'output mi restitutisce tutti gli utenti ed i relativi dati a loro associati come se la clusola where fosse inutile
    vi ringrazio anticipatamente

  2. #2

    Re: relazioni in db mysql

    Originariamente inviato da jrash
    all'output mi restitutisce tutti gli utenti ed i relativi dati a loro associati come se la clusola where fosse inutile
    vi ringrazio anticipatamente

    Codice PHP:
     $query="SELECT  docenti.nome, docenti.cognome , file_doc.data, file_doc.com, file_doc.file
     FROM docenti, file_doc 
    WHERE docenti.id_doc = file_doc.id_doc;"

    La query da te scritta concatena le 2 tabelle in legame 1 a 1.
    Non ci sono restrizione sui dati visualizzati.

    esempio:
    Tab. Docenti:
    ID # NOME # COGNOME # DOCENTE
    1 # Nome1 # Cognome1 # Docente1
    2 # Nome2 # Cognome2 # Docente2

    Tab. file_doc
    ID # FILE # DATA # COM
    1 # FILE1 # 01/01/01 # COM1
    2 # 02/02/02 # COM2 # FILE2

    la query da in output:

    1 # Nome1 # Cognome1 # 01/01/01 # COM1 # FILE1
    2 # Nome2 # Cognome2 # 02/02/02 # COM2 # FILE2
    Alcune domande:
    1. Ti da questo tipo di risultato?
    2. Cosa è che tu vorresti ottenere di preciso?

    (per la seconda domanda è gradito un semplice esempio così da capire bene )

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    15
    In primis ti ringrazio vivamente della risposta.
    Si in pratica hai centrato bene l'argomento. Quello che vorrei ottenere è che per ogni utente mi restituisse solo i file assegnati a lui.Ovvero se lutente 1 accede a quella pagina vede i dati che io precedentemente ho caricato per lui. Se accede l'utente 2 vede i dati che io precedentemente ho caricato per lui e così via...
    Spero di esseremi spiegato bene.In ogni caso ti sono grato per la tua gentilezza

  4. #4
    Bene, innanzi tutto hai bisogno di identificare l'utente che accede alla pagina.

    Per fare questo puoi fare in molti modi.
    Se sono dati sensibili e/o comunque riservati devi realizzare un sistema di login.
    Ma per questo magari apri una nuova discussione, in quanto è opportuno trattare un argomento per discussione, il più referente al titolo.



    Detto questo e tornando alla domnda della discussione,
    vediamo di modificare quello che hai scritto in modo che possa fare quello che tu vuoi.

    Per darti una risposta esauriente però ho bisogno di chiederti maggiori informazioen sulla struttura dati che hai ideato.

    Tab. file_doc
    id_doc int 11 not_null autoincrement primary key
    file varchar 250
    data varchar 10
    com text

    Tab. docenti
    id_doc int 11 not_null autoincrement primary key
    nome varchar 250
    cognome varchar 250
    docente varchar 250

    Ecco le domande:

    1. Quale campo mi identifica a quale utente appartenga il file?

    Altra cosa, le due tabelle sembrano essere legate da una relazione 1:1 (cioè un campo di una tabella ha solo un relativo campo nell'altra).

    2. id_doc della tabella file_doc corrisponde all'id_doc della tabella docenti?

    3. Se si, questa struttura dati non permette di assegnare più di un file ad ogni docente. è questo che volevi fare? oppure volevi poter assegnare 'n' file per ogni docente?

    Attendo la risposta a queste tue domande per poterti dare il listato della query che ti serve.


  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    15
    IL sistem di logion l'ho realizzato così e funziona abbastanza bene :
    ------------------
    include "../ddb.php";
    $conn="";
    $select="";
    $conn=mysql_connect($dbhost,$dblogin,$dbpasswd);
    $select=mysql_select_db($dbname);
    session_start();
    $_SESSION['autorizzato'] = FALSE ;
    $user=$_POST['user'];
    $pwd=$_POST['pwd'];
    $query= "SELECT * FROM docenti WHERE user = '$user' AND pwd = '$pwd' ";
    $select=mysql_query($query,$conn)
    or die($query);
    if (mysql_num_rows($select)) {


    $_SESSION['autorizzato'] = TRUE;
    echo "accesso effettuato";
    }
    else
    {
    echo "utente e password non riconosciuti";
    $url = "http://locahhost"; // target of the redirect
    $delay = "2"; //
    echo '<meta http-equiv="refresh" content="'.$delay.';url='.$url.'">';
    exit();
    }




    ?>

    Tab. docenti
    id_doc int 11 not_null autoincrement primary key
    nome varchar 250
    cognome varchar 250
    docente varchar 250
    user varchar 250
    pwd varchar 8

    il campo che identifica a quale utente appartiene il file è i l campo user. Ame serve che per ogni utente che fa il login all'output vengano mostrate delle informazioni e 1 file
    id_doc della tabella file_doc corrisponde all'id_doc della tabella docenti (si)

    ti ringrazio di cuore

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.