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

    Relazonare 2 tabelle mysql. Cercasi consigli e suggerimenti

    Ciao a tutti,
    ho un piccolo problema e non so proprio come fare per risolverlo.

    Non credo che sia una cosa molto difficile, e mi piacerebbe conoscere la vostra opinione in merito.

    Vi spiego tutto con un semplice esempio chiarificatore (lo spero )

    Esempio:
    Tabella MYSQL: regioni

    codice:
    id_regione | nome_regione |
    Tabella MYSQL: articoli

    codice:
    id_articolo | titolo_articolo | testo_articolo | regione_articolo |
    Il mio problema è mettere in relazione queste due tabelle mysql mediante il campo id_regione della prima tabella msql (regioni) e il campo regione_articolo della seconda tabella mysql (articoli).

    Fin qui tutto ok, ma il problema mi nasce quando l'articolo è relazionato a più regioni e quindi mi sorge la necessità di memorizzare nel campo regione_articolo diversi ID appartenenti più regioni.

    Io avevo pensato a memorizzare gli ID, delle regioni, tutti nello stesso campo della tabella articoli e separarli con un carattere speciale e quindi poi esplodere la stringa e ricavare i singoli id. Ma questa è solo un'idea perchè sinceramente non ho capito bene come fare e soprattutto poi come fare ad effettuare una ricerca di un determinato articolo che è relazionato ad una determinata regione.

    Cioè:

    Consideriamo l'articolo:

    Articolo1 il quale deve essere relazionato a 3 regioni diversi, ad esempio: Piemonte, Campania, Sicilia. Allora nel campo regione_articolo vado a memorizzare i 3 ID relativi a ciascuana regione e li separo, ad esempio, con un carattere separatore che può essere * (asterisco).

    Poi quando effettuo la ricerca e voglio estrarre tutti gli articoli relativi ad una singola regione, ad esempio campania, come faccio ad estrarre anche l'articolo dell'esempio?

    Cioè come deve essere impostata la query per l'estrazione dal DB?

    Avete suggerimenti? Non so proprio da dove iniziare

    Mi affido alla vostra esperienza....

  2. #2
    Ciao Spero di aver capito.

    Tu vuoi che un utente selezioni una regione il db ti restituisca tutti gli articoli che hanno quella regione nel campo regione_articolo giusto?

    Se sai l'id della regione la query dovrebbe essere così:

    codice:
    SELECT * FROM articoli WHERE regione_articolo='numeroID'
    ripeto non sono sicuro di aver capito se volevi una cosa del genere.

  3. #3
    Ciao,
    prima di tutto grazie per la tua risposta.

    Diciamo che hai capito in parte, sicuramente perchè non mi sono spiegato bene io e di ciò me ne scuso.


    In linea di massima è quello che voglio fare io, ma l'unica differenza è che nel campo regione_articolo possono essere memorizzati diversi ID relativi a diverse regioni.

    Esempio:

    1 (campania) * 2(piemonte) * 3 (sardegna)

    naturalmente i numeri sono gli id di ogni singola regione, tra parentesi ho riportato il nome delle regioni ma è solo un esempio per farvi capire e l'asterisco * è il carattere separatore.

    IN pratica nel campo regione_articolo mi ritroverei una cosa del genere:

    1 * 2 *3

    In tal caso se un utente cerca un articolo della regione CAMPANIA, quindi id 1, come imposto la quesry di ricerca?

    Posso strutturare anche la tabella mysql in un modo diverso, ma come?

  4. #4
    Prova con questa query di esempio:

    codice:
    SELECT a.titolo_articolo, a.testo_articolo, r.id_regione
    FROM articoli a, regioni r
    WHERE nome_regione='sicilia' AND regione_articolo=r.id_regione
    non sono sicuro di quanto scritto perchè ora non ho la possibilità di provare. Vedi se va bene!

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.