Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350

    problemi a capire tabelle relazionali

    Buongiorno a tutti.
    Sto facendo il mio primo "esercizio" per imparare a relazionare due
    tabelle.
    Ho letto molte cose teoriche ma non riesco ancora a
    capire molte cose.

    Vi spiego cosa vorrei cercare di fare.

    Ho una tabella chiamata "news" composta dei seguenti campi:
    id | anno | data | categorie | titolo | sottotitolo | redattore | corpo
    | hp (casella di controllo)

    Poi ho un'altra tabella "categorie" composta dei seguenti campi:
    id | categoria | colore

    Io vorrei nella tabella "categorie" impostare la categoria e settare un
    colore, tipo:
    1 | pippo | rosso
    2 | pluto | blu
    3 | minnie | verde

    e poi vorrei creare una relazione fra questa tabella e il campo
    'categorie' della tabella "news".

    Per quello che ho capito io, in teoria dovrei fare una query tipo:
    SELECT campi FROM tabella1 LEFT JOIN tabella2 ON tabella1.campo =
    tabella2.campo WHERE id='$id'

    Vi sembra corretto?
    pap

  2. #2
    codice:
    +-------------+         +------------+
    | news        |         | categorie  |
    +-------------+         +------------+
    | id          |     --> | id         |
    | anno        |    /    | colore     |
    | data        |   /     | tipo       |
    | categorie   |<-       +------------+
    | titolo      | 
    | sottotitolo | 
    | redattore   | 
    | corpo       | 
    | hp          |
    +-------------+
    La relazione la crei assegnando al record di news.categorie il valore corrispondente al record categorie.id desiderato.

    Se poi vuoi realizzare una "equi-join" cioe' estrarre solo i record che hanno le relative corrispondenze userai INNER JOIN, altrimenti utilizzando il LEFT JOIN ti restituira' tutti i record della tabella di SX anche se non hanno il corrispondente record nella tabella di DX che in questo caso sara' NULL.
    RIGHT JOIN e' l'opposto di LEFT JOIN



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    Grazie mille della risposta. Ma non so se ho capito...
    Se ho capito bene, per fare ciò che voglio la query dovrebbe essere così?:

    codice:
    SELECT news.categorie, news.titolo, news.sottotitolo, news.redattore, news.corpo, news.hp FROM news INNER JOIN categorie ON news.categorie = categorie.id WHERE id='$id
    Credo di dover usare INNER JOIN ma non ne sono sicura....
    pap

  4. #4
    devi estrarre anche i dati della tabella categorie....
    codice:
    SELECT *
    FROM news
    INNER JOIN categorie ON news.categorie = categorie.id 
    WHERE id = '$id'
    Le query scrivile in questo modo... ogni riga un'istruzione. E' piu' facile da leggere ed eventualmente modificare. Specie se la metti in un thread.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    Originariamente inviato da piero.mac
    devi estrarre anche i dati della tabella categorie....
    codice:
    SELECT *
    FROM news
    INNER JOIN categorie ON news.categorie = categorie.id 
    WHERE id = '$id'
    Le query scrivile in questo modo... ogni riga un'istruzione. E' piu' facile da leggere ed eventualmente modificare. Specie se la metti in un thread.
    [

    Grazie

    Quando provo la pagina sul server però mi da questo errore:
    Parse error: parse error in c:\programmi\easyphp1-8\www\prova\index.php on line 3

    Che significa?
    pap

  6. #6
    Originariamente inviato da pap
    Quando provo la pagina sul server però mi da questo errore:
    Parse error: parse error in c:\programmi\easyphp1-8\www\prova\index.php on line 3

    Che significa?
    che hai un errore nello script.. nelle prime righe. Posta le prime righe...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    codice:
    <?php require_once('Connections/cms.php'); ?>
    <?php
    mysql_select_db($database_cms, $cms);
    $query_SEARCH "SELECT *
    FROM news
    INNER JOIN categorie ON news.categorie = categorie.id 
    WHERE id = '$id'";
    $SEARCH = mysql_query($query_SEARCH, $cms) or die(mysql_error());
    $row_SEARCH = mysql_fetch_assoc($SEARCH);
    $totalRows_SEARCH = mysql_num_rows($SEARCH);
    ?>
    pap

  8. #8
    $query_SEARCH = "SELECT *

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    Originariamente inviato da piero.mac
    $query_SEARCH = "SELECT *

    pap

  10. #10
    Originariamente inviato da pap
    :master:

    $query_SEARCH

    non e' una variabile? come fai a valorizzarla senza = ????

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.