Avatar billede Slettet bruger
23. april 2005 - 09:01 Der er 13 kommentarer og
1 løsning

Kan jeg opdatere DB sådan her

Hej.

Jeg har en tabel med en masse data i, og ved siden af har jeg en lille tabel hvor der gemmes 4 poster.

Når jeg vælger at rette en post hentes posten ind i en formular via ID nummer på den store tabel. Man kan så rette og trykke opdater, og det fungerer fint.

Men så er jeg blevet i tvivl med den lille tabel, den har jo ikke samme ID som den store tabel.

Lige nu ser linien sådan her ud, og den vil helt sikkert gemme i et forkert felt:

// $query = "UPDATE Kursusnummer SET KursusNr = '$_POST[KursusNr]', KursTitel = '$_POST[KursusTitel]', Dato = '$_POST[StartDato]', Pris = '$_POST[Normalpris]' WHERE id = $nr";

Men hvis jeg omskriver den til dette:

// $query = "UPDATE Kursusnummer SET KursusNr = '$_POST[KursusNr]', KursTitel = '$_POST[KursusTitel]', Dato = '$_POST[StartDato]', Pris = '$_POST[Normalpris]' WHERE KursusNr = $_POST['KursusNr']";

Vil den så ikke ramme den rigitge plads, eller skal der gøres noget mere for at ramme rigtigt i den lille tabel ? Det synes jeg at jeg er noget i tvivl om, så derfor spørger jeg her for at få hjælp til at gøre det rigtigt.

Det er altså kun for at få de 4 poster gemt det rigtige sted i den lille tabel jeg er i tvivl om.

På forhånd tak.
Avatar billede busschou Praktikant
23. april 2005 - 09:05 #1
Det giver umiddelbart ingen mening at bruge den sidste
For den siger jo sådan set med dansk "Tag den hvor kursus nummer er lig det som postes og sæt det derefter lig det som postes" .. hvis du kan følge mig
Men du har helt ret i af id´erne højst sandsynlig er unikke
Hvis du kender kursus nummeret og det ikke skifter! så kan du gøre sådan her
$query = "UPDATE Kursusnummer SET KursTitel = '$_POST[KursusTitel]', Dato = '$_POST[StartDato]', Pris = '$_POST[Normalpris]' WHERE KursusNr = $_POST['KursusNr']";
Avatar billede Slettet bruger
23. april 2005 - 09:26 #2
Jep det giver ingen mening. De kan jo finde på at skrive kursusnummer forkert og det så er det der skal rettes.

Det må så være noget med at finde id'en på det kursusnummer inden der rettes noget, og så gemme den id i en variabel og bruge den til at gemme med bagefter.

Har du et let bud på det.
Avatar billede busschou Praktikant
23. april 2005 - 09:29 #3
Det er jo nemt nok at finde id først
Select id From Kursusnummer Where KursusNr = $_POST['KursusNr']";
Hvis det er det du mener?
Har tabellerne slet ingen felter tilfælles?
Avatar billede Slettet bruger
23. april 2005 - 09:35 #4
De hedder ikke det samme i begge tabeller, hvis det er det du mener.

ok med select, men hvordan får jeg så ID'en over i en variabel ?

Jeg har ikkke helt styr på det der. Jeg har været lidt dum og bruge Dreamveaver til alt det der, da det jo er rimelig let. Indtil man kommer ud for dette  :-) så er det man opdager man lige mangler at lære noget mere.
Avatar billede busschou Praktikant
23. april 2005 - 09:39 #5
på samme måde som de andre steder du henter data ud med select
Det gør du vel andre steder for at vise en oversigt eller lign?
$query = mysql_query("Select id From Kursusnummer Where KursusNr = $_POST['KursusNr']")or die(mysql_error());
$resultat = mysql_fetch_array($query);
$id = $resultat['id'];
---
såen cirka :o)
Avatar billede Slettet bruger
23. april 2005 - 09:44 #6
Okay :-)

Ja det henter jeg ud mange steder, men jeg har jo ikke selv skrevet det, som jeg skrev tidligere. Dreamveaver har det med at smide en masse linier ind, og jeg varbange for at ødelægge resten, hvis jeg forsøgte det, med denne ;-)

Jeg har lært man skal passe meget på med at rode rundt i koden bagefter.

Tak for hjælpen. Jeg vil prøve at få det klistret ind det rette sted, og imens kan du lægge et svar, så jeg ikke skal bede dig om det bagefter :-) Jeg vender tilbage lige om snart.
Avatar billede busschou Praktikant
23. april 2005 - 09:47 #7
jamen her er så et lille svar :o)
Kender ikke selv Dreamveaver, men det er vist med det som med meget andet
Det gør det nemt og hurtigt...men den bedste kode fåes som regel ved selv at kode ;o)
Avatar billede Slettet bruger
23. april 2005 - 10:04 #8
Jeg får lige en fejl i

$resultat = mysql_fetch_array($query);

somm er:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Er der fejl i den ?
Avatar billede busschou Praktikant
23. april 2005 - 10:08 #9
Normalt betyder den fejl at der er en fejl i din query
Så du kan lige prøve at lave sådan her
---
$sql = "Select id From Kursusnummer Where KursusNr = $_POST['KursusNr']";
echo"$sql";
$query = mysql_query($sql)or die(mysql_error());
$resultat = mysql_fetch_array($query);
$id = $resultat['id'];
----
Så får vi sql ud og kan se om den er gal
Avatar billede Slettet bruger
23. april 2005 - 10:13 #10
Så skriver den:

SELECT id FROM Kursusnummer WHERE KursusNr = '5311'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

og det er det rigtige nummer.
Avatar billede Slettet bruger
23. april 2005 - 10:15 #11
Det Dreamveaver har lavet til den store tabel ser sådan ud:
$query_rsOpdater = "SELECT * FROM Katalog WHERE LEFT(KursusNr,4) = '$nr'";
$rsOpdater = mysql_query($query_rsOpdater, $Tilmelding) or die(mysql_error());
$row_rsOpdater = mysql_fetch_assoc($rsOpdater);
$totalRows_rsOpdater = mysql_num_rows($rsOpdater);
Avatar billede busschou Praktikant
23. april 2005 - 10:16 #12
du kan jo godt prøve at rette
mysql_fetch_array
til
mysql_fetch_assoc
eller
mysql_fetch_row
Avatar billede Slettet bruger
23. april 2005 - 10:30 #13
Nu tror jeg dæleme den er der :-)

TUSIND TAK.
Avatar billede busschou Praktikant
23. april 2005 - 10:33 #14
det var så lidt da :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester