Flapz Skrevet 9. mars 2003 Del Skrevet 9. mars 2003 Brifing: Tenkt situasjon Jeg skal registrere ett medlem opp mot en allerede eksisterende tilhøriget! Det vil derfor bli et mange til mange forhold. Ett medlem kan ha ett eller flere tilhørigheter. En tilhørighet kan ha en eller flere medlemmer. Jeg har derfor laget en medlem_tilhørighet tabell. Jeg har tre tabeller: Medlem: MedlemID(Primary key, auto increment) Fornavn Etternavn Medlem_Tilhørighet: Medlem_TilhørighetID(Primary key, auto increment) MedlemID(Fremmednøkkel) TilhørighetID(Fremmednøkkel) Tilhørighet: TilhørighetID(Primary key, auto increment) Navn Først html kode som viser sjemaet: <h2>Registrer medlem med tilhørighet</h2> <form method=post action="registrer_medlem_forum_innskrivning.php"> <input type="hidden" size="20" name="MedlemID"> <b>Fornavn: </b> <input type="text" size="20" name= "Fornavn"> <br> <b>Etternavn: </b> <input type="text" size="30" name="Etternavn"> Deretter innskrivnings kode: if ($submit == "Registrer!") { $query = "insert into medlem(MedlemID,Fornavn,Etternavnn) values('','$Fornavn','$Etternavn')"; mysql_query($query); SÅ KOMMER BIFFEN: Hva blir fremgangsmåten for å legge inn data i medlem_tilhørighet der medlemID skal være fra den som registrerer seg mot en tilhørighet? Håper på svar og jeg får satse på at jeg har formulert med forståelig? Flapz Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 9. mars 2003 Del Skrevet 9. mars 2003 Dette er ikke er svar på problemet ditt (det skjønnte jeg faktisk ikke helt ). Jeg vil bare påpeke at du ikke har avsluttet spørringen. Dette gjøres med et semikolon, som i så mange andre språk. Dette er ikke noe som kreves for å få ting til å fungere, men man burde skrive korrekt syntaks for å unngå eventuelle problemer uansett... Du trenger heller ikke spesifisere hvilke verdier du skal putte data i hvis du skal sette inn data i alle feltene. Altså: $query = "INSERT INTO medlem VALUES('', '$Fornavn', '$Etternavn');"; Ville også kjøre if'en på denne måten: if (isset($submit)) { blahblah; } Lenke til kommentar
MortenH Skrevet 10. mars 2003 Del Skrevet 10. mars 2003 Det er flere måter å gjøre det på, en måte er f.eks. å ta vekk autoincrement på medlemsindeksen i sql og gjøre dette manuelt i koden. Dvs. du henter ut maksid'en og legger til 1. Da kan du bruke denne variablen (medlemsid'en) til å legge inn korrekt id i koblingstabellen. Det er heller ikke nødvendig å ha en egen autoincrement primarykey i koblingstabellen, du bare bruker medlemsid og medlemsskapsid som primaryid (sammen). Lenke til kommentar
christt Skrevet 10. mars 2003 Del Skrevet 10. mars 2003 Databasedesignet ditt er ikke helt bra her.... Du har ikke behov for Medlem_TilhørighetID(Primary key, auto increment) nøkkelen da en medlem kun vil ha en tilhørighet til samme tilhørighet. Jeg ville hatt det slik: Medlem: MedlemID(Primary key, auto increment) Fornavn Etternavn Tilhørighet: TilhørighetID(Primary key, auto increment) Navn Medlem_Tilhørighet: MedlemID(Primary key, Fremmednøkkel) TilhørighetID(Primary key, Fremmednøkkel) Kan du forklare hvor tilhørigheten kommer inn? Hva er det som avgjør hvilken tilhørighet medlemen skal ha? Mye lettere å hjelpe deg da... Som sagt her tidligere, bør du nok ikke bruke auto_increment på medlemsid'n. Styr denne selv slik at du vet hvilken meldemsid du skal bruke i medlem_tilhørighet tabellen. Queryet for å hente ny id: SELECT MAX(MedlemID) as max_id FROM Medlem $nyid = $max_id + 1; Sette inn medlem: INSERT INTO Medlem VALUES ($nyid, '$fornavn', '$etternavn') Sette inn tilhørighet: INSERT INTO Medlem_tilhørighet VALUES ($nyid, $tilhørighetid) Det er hvor tilhørighetsid'n skal komme fra du ikke har sagt noe om... Gadd ikke skrive skikkelig PHP kode her nå, men det fikser du jo lett selv. Lenke til kommentar
kilogram Skrevet 10. mars 2003 Del Skrevet 10. mars 2003 Jeg vil bare påpeke at du ikke har avsluttet spørringen. Dette gjøres med et semikolon, som i så mange andre språk. Dette er ikke noe som kreves for å få ting til å fungere, men man burde skrive korrekt syntaks for å unngå eventuelle problemer uansett... Feil. Korrekt syntaks er i PHP uten semikolon, jamfør med PHP.net. Dette fordi at ein uansett berre skal køyre ei spørring gjennom funksjonen om gangen, slik at ein får rett feilkodar og resultat ut ifrå det som vert returnert. Lenke til kommentar
Flapz Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Det å gjøre medlemsid om til å styre den selv fikk jeg ikke direkte godt til! Det må da også være en måte å få tak i medlemsid selv om dette er auto increment? Skal prøve å presisere meg litt bedre: Jeg ønsker å registrere nye medlemmer opp mot allerede eksisterende tilhørigheter. Disse tilhørighetene er f.eks bladforum. En medlem kan ha flere tilhørigheter og en tilhørighet kan ha mange medlemmer. Lenke til kommentar
Flapz Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Legger til kildekode slik at det kanskje blir lettere å se hva jeg gjør feil og forhåpentligvis riktig! Som sagt så sliter jeg med å få tak i MedlemsID og TilhørighetsID, slik at jeg får lagt dette til i medlem_tilhørighet tabellen! Enkelte felt vil være litt merkelige ved at jeg prøver meg frem litt! Håper noen kan komme med litt fornuft! Er som sagt rimelig fersk til dette jeg driver med her: Her er registrer_medlem_forum: <?php include("dbconnect.php"); ?> <html> <head> </head> <body> <h2>Registrer deg opp mot forum/organisasjon</h2> <form method=post action="Registrer_medlem_forum_innskrivning.php"> <br> Fornavn: <input type="text" size="20" name= "Fornavn"> <br> Etternavn: <input type="text" size="30" name="Etternavn"> <br> Postadresse: <input type="text" size="40" name="Postadresse"> <br> Postadresse2: <input type="text" size="40" name="Postadresse2"> <br> Postnr: <input type="text" size="20" name="Postnr"> <br> Arbeidsgiver: <input type="text" size="20" name="Arbeidsgiver"> <br> Telefon: <input type="text" size="8" name="Telefon"> Mob: <input type="text" size="8" name="Mobiltelefon"> <br> Telefax: <input type="text" size="8" name="Telefax"> <br> Epost: <input type="text" size="40" name="Epost"> <br> <?php echo "<br><b>Velg ett av de eksisterende forum</b>"; echo "<select name="Navn"><br>"; $result = mysql_query("select TilhørighetsID from tilhørighet") or die (mysql_error()); #$result = mysql_query("select TilhørighetsID,Forkortelse,Navn from Tilhørighet") or die (mysql_error()); while ($row = mysql_fetch_array($result)) { $TilhørighetsID=$row["TilhørighetsID"]; #$Forkortelse=$row["Forkortelse"]; #$Navn=$row["Navn"]; #Vis resultat #echo "<option>$TilhørighetsID,$Forkortelse, $Navn"; echo "<option>$TilhørighetsID"; } echo "</select>"; ?> <br> <br> <b>Velg medlemskap</b> <hr> Personlig medlem: <input type="checkbox" name="Personlig_medlem"> <br> Student medlem: <input type="checkbox" name="Student_medlem"> <br> Bedrift/Virksomhets medlem: <input type="checkbox" name="Bedrift_medlem"> <br> Kontakt person: <input type="checkbox" name="Kontakt_person"> <br> <input type="submit" name="submit" value="Registrer!"> <input type="reset" name="reset" value="Tøm felt!"> </form> </body> </html> Her er medlem_forum_innskrivning: <html> <head></head> <body bgcolor="#CCCCCC"> <?php include("dbconnect.php"); ?> <?php $submit="Registrer!"; if ($submit == "Registrer!") { $query = "insert into medlem(MedlemsID,Fornavn,Etternavn,Postadresse,Postadresse2,Postnr,Arbeidsgiver,Telefon,Mobiltelefon,Telefax,Epost,Personlig_medlem,Student_medlem,Bedrift_medlem,Kontakt_person,Forum_navn) values('','$Fornavn','$Etternavn','$Postadresse','$Postadresse2','$Postnr','$Arbeidsgiver','$Telefon','$Mobiltelefon','$Telefax','$Epost','$Personlig_medlem','$Student_medlem','$Bedrift_medlem','$Kontakt_person','$Navn')"; mysql_query($query); $query_medlem = "insert into medlem_tilhøringhet(Medlem_TilhørighetID,MedlemsID,TilhørighetsID) values('','','$Navn')"; mysql_query($query_medlem); } else { include("Registrer_medlem_forum.php"); } ?> <h2>Du har nå registrert følgende informasjon!!</h2> <?php echo "Du skrev inn følgende informasjon:<br>"; echo "Fornavn: <b>$Navn</b><br>"; echo "MedlemsID: $nyid"; ?> <h2><a href="Registrer_medlem_forum.php">Gå tilbake!!!</a></h2> </body> </html> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå