[PHP] skriva ut från en tabell där id matchar från annan tabell

Permalänk
Medlem

[PHP] skriva ut från en tabell där id matchar från annan tabell

Hej Swecare, nu kommer troligtvis min sista newbie fråga på ett tag. Jag håller på med en adressbokssida där man kan lägga in personer och adresser och sen koppla personer till dessa adresser. Allt detta fungerar väldigt bra. Men jag har inte den blekaste aning om hur jag ska skriva ut adressen som hör till en viss person.

Sidan har två tabeller i MYSQL, personer och hus. Personer har id, förnamn, efternamn, telefon och bostads_id. Byggnader har adress, postkod, stad och id. Sättet man kopplar dessa på är att lägga in en byggnads id som byggnads_id attribut i personer. Det jag inte lyckas med är att jag vill skriva ut informationen om varje person(Det kan jag) och sen då skriva ut det som finns på byggnaden med samma id som byggnads_id(kan jag ej) direkt efter personen. Går detta att lösa på ett bra sätt när man skriver ut?

Idé: Skriv ut person A; Skriv sedan ut byggnader i Tabel B där Id matchar Attribut Byggnads_id i tabel A

Visa signatur

Speldator: i5 4670k stock | 8GB ram | Asus Z87-plus | Xonar Essence STX | SSD: Intel g2 , Samsung 830 256gb | R9 290 Tri-x | Define R4| Win 8 | Noctua nh-u12p | Qpad Mk-50
marinlik.wordpress.com/ Min blogg för nedbrytning av spel och diverse andra artiklar om NFL
500px.com/niclasbrundell

Permalänk
Skrivet av flyawaynille:

Hej Swecare, nu kommer troligtvis min sista newbie fråga på ett tag. Jag håller på med en adressbokssida där man kan lägga in personer och adresser och sen koppla personer till dessa adresser. Allt detta fungerar väldigt bra. Men jag har inte den blekaste aning om hur jag ska skriva ut adressen som hör till en viss person.

Sidan har två tabeller i MYSQL, personer och hus. Personer har id, förnamn, efternamn, telefon och bostads_id. Byggnader har adress, postkod, stad och id. Sättet man kopplar dessa på är att lägga in en byggnads id som byggnads_id attribut i personer. Det jag inte lyckas med är att jag vill skriva ut informationen om varje person(Det kan jag) och sen då skriva ut det som finns på byggnaden med samma id som byggnads_id(kan jag ej) direkt efter personen. Går detta att lösa på ett bra sätt när man skriver ut?

Idé: Skriv ut person A; Skriv sedan ut byggnader i Tabel B där Id matchar Attribut Byggnads_id i tabel A

Om jag fattat det rätt så är det "join" du vill använda i din sql-sats. Googla på det så lär du hitta svar.

Skickades från m.sweclockers.com

Visa signatur
Permalänk
Hedersmedlem

Det "naiva" sättet att lösa det är att läsa infon om personen och göra en ny SQL-query av typen `SELECT * FROM Byggnader WHERE id=$Person['byggnads_id']`.

Det "korrekta" sättet är snarare att låta databasen göra detta åt dig — det är vad databaser gör bäst. I detta fall, testa följande syntax och lista ut vad den gör:

SELECT * FROM Personer LEFT JOIN Byggnader ON Personer.byggnads_id = Byggnader.id

Modifiera den därefter med specifika `SELECT`-fält, `WHERE`- och `ORDER BY`-direktiv, etc.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.