23. april 2005 - 09:01Der 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.
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']";
Synes godt om
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.
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?
Synes godt om
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.
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)
Synes godt om
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.
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)
Synes godt om
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
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
Synes godt om
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.
Synes godt om
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);
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.