Zet eerst even de hele structuur zoals je die nu hebt hier neer. (Dus de tabellen auto's, dakdragers en de relatietabel) Ik weet niet wat je onder roof_1/2/3 gaat neerzetten, maar dat ziet er op het eerste oog al niet erg handig uit. Je zou eventueel ook tutorials op kunnen zoeken over "Database normalisatie".
Daarnaast mis ik goede foutafhandeling. Wat gebeurt er als je niet kunt connecten met de database? Dan werkt opeens je hele script niet meer en dat is niet altijd wenselijk. Je wilt in dit geval dat de gebruiker gewoon de rest van de site kan gebruiken, ook al werkt dit systeem niet. "or die()" is daarom zelden een goede oplossing.
De reden dat je DISTINCT op deze manier niet werkt is omdat je in eerste instantie alleen de unieke velden wilt ophalen, maar vervolgens er ook nog eens allemaal andere velden bij pakt.
Ik weet niet zo goed wat je probeert op te halen, maar dit zou in principe alle unieke automerken moeten ophalen met de gegevens in die rows:
SELECT brand, id, parent_id, model, type_year, roof FROM automerken GROUP BY brand
Je ziet dat ik voor alle SQL related woorden hoofdletters gebruik. Dat is voor mij makkelijker onderscheiden welke onderdelen wat zijn. Mocht je nou een langere query, dan mag je hem ook opdelen door enters te gebruiken.
Dit is alleen niet echt een handige aanpak, wat probeer je te doen?