Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Er du sikker på at du er fornøyd med databasemodellen din? Det ser ut som du har en tabell for sykdom og en for pasient, også en kobling mellom de to. Hvorfor har du ingen fremmednøkkel? Og hva er egentlig relasjonen mellom disse tabellene? Man kobler vanligvis ikke to tabeller med PK mot PK, men PK mot FK.

 

 

Prøv å kjør spørringen din i phpmyadmin e.l. og se om du får forventet resultatsett.

 

Forstår ikke problemet ditt. Selvsagt finnes ikke navnet før du har registrert det.

Lenke til kommentar

jeg måtte rename litt. Legger opp riktig versjon nå.

 

På tabellen

 

 

ALTER TABLE `fridager`

ADD CONSTRAINT `fk_fridager` FOREIGN KEY (`ID`) REFERENCES `fag` (`ID`);

 

 

 

Selvsagt finnes ikke navnet før du har registrert det.

Tror du har feiltolket litt. I tabellen fag ligger navn på alle fagene og navn på fag. Eks matte, kjemi og historie hvorav hver av fagene har egen ID.

 

I tabellen fridager ligger ID og masse annet.

 

Det jeg prøver å få på dropdownlista er at den skal vise bare navnet og ikke iden. Den skal vise Matte. Jeg bruker det i en form slik at det er mulig å legge inn igjen.

 

Håper at det var litt mer forklarlig

Endret av corsa91
Lenke til kommentar

Som sagt tre ganger før, bruk code-bbcoden. Da gjør du det mye enklere både for deg og for de som prøver å hjelpe deg.

 

Har fikset litt på frister.php for deg, lagt inn et par nyttige debuggings- og sikkerhetsfunksjoner. Kjør og se hva som skjer.

 

<?php
if(isset($_POST["Bekreft"]))  //ENDRET
{
var_dump($_POST);  //LAGT TIL
include 'include/db_connect.php';
$kursid = mysql_real_escape_string($_POST['kurs']);  //ENDRET
$tittel = mysql_real_escape_string($_POST['Tittel']);  //ENDRET
$tid = mysql_real_escape_string($_POST['Tid']);  //ENDRET
$dato = mysql_real_escape_string($_POST['Dato']);  //ENDRET
$sql="INSERT INTO frister
	(KursID, Tittel, Tid, Dato)
	VALUES
	($kursid,'$tittel','$tid','$dato')";  //ENDRET
echo "<br>SQL=$sql<br>\n";  //LAGT TIL
$resultat = mysql_query($sql, $tilkobling) or die("Feil: ".mysql_error()); //ENDRET
if (!$resultat)
{
 echo "Feil, kunne ikke legge til i databasen!";
}
else
{
	echo "Følgende data har blitt lagt inn:" .$kursid." ".$tittel." ".$tid." ".$dato;
}
}

Endret av MikkelRev
Lenke til kommentar

Den blir lagt inn i databasen men får ut følgende:

 

array(5) { ["kurs"]=> string(1) "1" ["Tittel"]=> string(4) "tysk" ["Tid"]=> string(8) "16:20:05" ["Dato"]=> string(10) "2001-04.24" ["Bekreft"]=> string(7) "Bekreft" }

SQL=INSERT INTO frister (KursID, Tittel, Tid, Dato) VALUES (1,'tysk','16:20:05','2001-04.24')

Følgende data har blitt lagt inn:1 tysk 16:20:05 2001-04.24

 

Klarer å skjule det med fet skrift. Men ikke det som står over.

Endret av corsa91
Lenke til kommentar

Oja. Men er det mulig å skjule det slik at det ikke er synlig for brukeren.

 

Også lurer jeg på om jeg må gjøre store endringer på å gjøre fra mysql til mysqli. Fikk høre at du måtte endre diverse plasser før man kan endre i selve koden. Er det riktig?

Lenke til kommentar

Du må ta vekk igjen de setningene som skriver ut informasjonen du ikke vil vise.

 

Er det ikke raskere å prøve mysqli selv enn å vente på at noen skal finne svaret for deg?

 

Jo det er sant men jeg har ikke lyst til å endre andre steder enn det jeg bør eller må

 

Jeg ser ikke helt hvilken setning jeg skal fjerne. Det med fet skrift klarer jeg å fjerne men ikke det over.

Lenke til kommentar

Jo det er sant men jeg har ikke lyst til å endre andre steder enn det jeg bør eller må

 

Jeg ser ikke helt hvilken setning jeg skal fjerne. Det med fet skrift klarer jeg å fjerne men ikke det over.

 

Slett/kommenter ut

var_dump($POST)

så får du vekk debug-informasjonen.

 

EDIT: Ser jeg svarte feil. Er

echo "<br>SQL=$sql<br>\n";

du skal fjerne for å få vekk SQL-debug-informasjonen

Endret av hjahre
Lenke til kommentar

Hvis du f.eks. vil fjerne utskriften av "Følgende data blir lagt inn ..." fjerner du setningen

 

echo "Følgende data blir lagt inn ... "

 

osv.

 

Hvis du skal komme deg framover så er du nødt til å tørre å redigere koden din. Bruk en editor som holder styr på historikken på alle filene du redigerer, da har du ubegrenset undo-mulighet og du kan alltid finne tilbake til en tidligere versjon som virket ok, etter at du har vært i eksperimentmodus.

 

Ihvertfall Netbeans har en php-modus du kan bruke, dessuten fins sikkert mange andre redigeringsverktøy for php.

 

En "enklere" variant er å kommentere ut programlinjer midlertidig, når du er usikker på om du egentlig skal fjerne dem. Du kan omslutte den aktuelle koden med /* og */, evt. la det stå // først på linja.

 

Hvis du skal redigere kode på prosjekt sammen med andre er det vanlig å bruke verktøy som subversion eller git for å holde styr på slike ting, men på enmannsprosjekter blir det kanskje litt stor kanon.

Endret av quantum
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...