Gå til innhold

Trenger hjelp til mysql og php!!


Anbefalte innlegg

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
Videoannonse
Annonse
Gjest Slettet-rXRozPkg

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

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

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
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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...