17. august 2012 - 14:31Der er
16 kommentarer og 1 løsning
Mysqli søg i to tabeler
Hej
hvis man nu har to tabeler (lille eks.
medlem id|brugernavn|password
gruppe brugerid|gruppenavn
hvis man så ville lave f.eks en liste over medelemmer og ville sammentidig have brugerens grupper vist findes der en fiks metode til det eller skal jeg først finde alle brugerne og så søge efter grupperne ??
#2: Det er, såvidt jeg kan se, en tilgang, der er ret forskellig fra claes57's. Det kommer lidt an på, hvad meningen med tabellerne er - og hvad de indeholder.
Tabellen 'gruppemedlem' i Claes' eksempel bruges kun til at relatere de to andre tabeller. Den skal ikke indeholde egentlige data
rix17172, drejer spørgsmålet sig simpelt hen om hvordan man joiner to tabeller (uanset hvad nu indholdet i tabellerne måtte være?) I så tilfælde, hvis du med dine to tabeller (der som allerede nævnt ikke er stillet ideelt op, men det var ikke dit spørgsmål i denne omgang) vil have alle medlemmer med id, brugernavn, password, og gruppe, så kan det gøres, for eksempel, således:
SELECT medlem.id, medlem.brugernavn, medlem.password, gruppe.gruppenavn FROM medlem JOIN gruppe ON medlem.id = gruppe.brugerid
Som allerede antydet bør kikke videre på hvordan man strukturerer relationelle databaser. Der er masser af tutorials på nettet og hjælp (til selvhjælp) at hente her på forummet.
rix17172, lad os antage, at du har tre members, Jens, Hans, og Sven. Samtidig har du tre ansøgningstyper, Ansøgning1, Ansøgning2, og Ansøgning3. Jens skal kunne se alle tre typer, Hans type 1 og 2, og Sven type2. Det kan du vise i den følgende tabel:
Jens Ansøgning1 Jens Ansøgning2 Hans Ansøgning1 Sven Ansøgning2 Hans Ansøgning2 Jens Ansøgning3
Men hvis du nu har hundrede members og tyve ansøgningstyper, så ville du hurtigt tabe overblikket med en tabel som ovenstående. Når man skal holde styr på en mange-til-mange relation, hvordan for eksempel mange ansøgningstyper relaterer til mange personer, så laver man en tabel for members, en tabel for ansøgningstyper, og en tabel for relationen derimellem. Her er et simpelt eksempel med ovenstående data.
member id navn 1 Jens 2 Hans 3 Sven
ansøg id navn 1 Ansøgning1 2 Ansøgning2 3 Ansøgning3
Her kan du, og et database-system, nemt se, at member1 har ansøg 1, 2, og 3, member 2 har ansøg 1 og 2, og member3 har ansøg 3.
Hvis du så, for eksempel, vil se navnene på de members der har adgang til ansøgningstype 1 kan du forespørge således:
SELECT navn FROM member JOIN member_ansøg ON member.id = member_ansøg.m_id JOIN ansøg ON member_ansøg = ansøg.id WHERE ansøg.navn = 'Ansøgning1'
Resultatet af den forespørgsel vil være: Jens Hans
I #2 viser du ud over u_id og ansog_id også com_id. Det kunne tyde på, at du har en tredje tabel som du ikke viser.
(Dette eksempel er ment udelukkende som et 'starter' eksempel. Hvis du skal sætte en funktionerende database op skal du, som der er gjort opmærksomt på, også lære om indeksering og andre ting.)
Nej com_id er en form for hvor meget man har lov til at se. den kan kun være 1 eller 2. 1 betyder at man kun har adgang til det mest nødvændige. og 2 betyder alt. en bruger kan ikke have 1 og 2 sammentidig så derfor har jeg valgt det på denne måde.
Jeg tror hellere ikke i har forstået hvordan jeg har sat det op.
jeg har 3 tabler.
en table med data omkring brugeren.
en table med ansøgnings data.
og en table med tilladelser.
tablen kunne som i selv siger kun indeholde 2 felter nemlig bruger_id|ansøgnings_id.
jeg har vaglt da jeg havde en behov for at gøre en person som leder for en enkelt ansønging at lave en 3 felt nemlig com_id.
og der skul kun være 1 tal i nemlig 1 eller 2 1 er nomal bruger. der er føglende mugligheder. 1 se ansøgning. 2 skriv en post i intern dialog. 3. stemme om optagelse. 4. skriv en post i ekstern dialog med brugeren.
2 (leder) skal have de samme rettigheder som tallet 1 og 1. ændre data for ansøgningen 2. oprette en ny ansøgning. 3. tilføjere og fjerne medlemmer. 4. acceptere ny medlem.
Jeg reagerer fra mit feriested i Egypten, fra en internetcafe med meget begraenset funktionaliget. Du bekraefter, hvad jeg formodede fra dit indlaeg #6 og sagde i mit #7, at du har tre tabeller. Men det staar mig ikke klart hvad det er for et problem d soeger hjaelp til. Hvad er problemet?
@Arne: Nu har vores tidligere håndbold-es Janne Kolding jo boet og spillet mange andre steder end lige i Kolding - men det kan selvfølgelig være, du ved noget, jeg ikke ved =)
rix17172, med hensyn til DIT spørgsmål, så giv genlyd. Hvis spørgsmålet ikke længere er aktuelt, så luk det venligst igen. Hvis det stadig er aktuelt, så kom ind og forklar (eftersom mine tidligere indlæg åbenbart ikke ramte det) hvad det er for et problem du prøver at løse, hvad det er du vil opnå men ikke kan.
Christian_Belgien. Grunden til jeg ikke helt har svaret er fordi jeg har leget med din eks. i #4 som jeg lige har fået til at virke. Mnage tak hvis du ville have poit så lig en svar :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.