20. marts 2004 - 10:22Der er
38 kommentarer og 1 løsning
Hjælp til at opdatere db fra form
Hejsa, Jeg vil gerne have hjælp til at opdatere en form og gemme data i databasen igen. jeg har rodet en del med det, men har endnu ikke fået det helt til at virke...
Jeg har lavet formen, og den henter også godt nok de rigtige data, men den vil ikke rigtigt gemme igen...
Når jeg har lavet de rettelser jeg skal, skal jeg sendes over til en anden fil hvor db oplysningerne er, og det har jeg skrevet sådan her: action="filmliste_retfilm.php?action=ret" men den skal jo også have id'et med fra det jeg retter? Hvordan går jeg det?
id er jo ikke 10 hver gang? Den skal jo tage det id med der passer til det der skal rettes i databasen. Jeg har prøvet at skrive: action="filmliste_retfilm.php?action=ret?id=$row[id] men det virker heller ikke. Den tager ikke id'et med over...
Nu har jeg noget der ser sådan her ud: <form action="filmliste_retfilm.php" method="post" name="post"> <input type="hidden" name="action" value="ret"> <input type="hidden" name="id" value="<?= $row[id] ?>">
og lidt længere oppe har jeg dette: if($action=="ret"){ $rettet = date('d/m/Y H:i:s');
mysql_query("UPDATE www_filmliste SET rettet = '$rettet', titel = '$titel', udg_dato = '$udg_dato', instruktoer = '$instruktoer', kategori = '$kategori', tilladt = '$tilladt', varighed = '$varighed', sprog = '$sprog', skuespillere = '$skuespillere', beskrivelse = '$beskrivelse', andet = '$andet', pic_url = '$pic_url' WHERE id = '$id'") OR die(mysql_error());
Men der sker ikke noget når jeg submitter formen? Den foretager ikke rettelser i min database?
Er du sikker på, at din SQL er korrekt... ? Prøv at skrive echo("UPDATE www_filmliste SET rettet = '$rettet', titel = '$titel', udg_dato = '$udg_dato', instruktoer = '$instruktoer', kategori = '$kategori', tilladt = '$tilladt', varighed = '$varighed', sprog = '$sprog', skuespillere = '$skuespillere', beskrivelse = '$beskrivelse', andet = '$andet', pic_url = '$pic_url' WHERE id = '$id'");
Når jeg skriver det ud i samme film som hvor formen er, så ser det ud til at det bliver skrevet ud rigtigt nok:
UPDATE www_filmliste SET rettet = '', titel = '101 Dalmatinere', udg_dato = '22-11-2000', instruktoer = 'Stephen Herek', kategori = '', tilladt = '', varighed = '76', sprog = 'Dansk, Engelsk', skuespillere = 'Joan Plowright, Jeff Daniels, Glenn Close, Joely Richardson', beskrivelse = '101 Dalmatiner vil betage store som små i denne eventyrs komedie, fem gange Academy Award nomineringer er det blevet til for Glenn Close, forrygende god i rollen som den pels fikserede dame. Aldrig er der blevet brugt så mange og så søde hvalpe i nogen anden film', andet = 'Theatrical Trailer "The magic is real" Special Effects Featurette "Dogs Stars" Featurette "Cruella De Vil" Music Video by Dr. John "Connect The Spots" Interactive Game', pic_url = 'http://www.rent-a-movie.dk/pics/film/0023.jpg' WHERE id = '23'
UPDATE www_filmliste SET rettet = '', titel = '101 Dalmatinere', udg_dato = '22-11-2000', instruktoer = 'Stephen Herek', kategori = '', tilladt = '', varighed = '76', sprog = 'Dansk, Engelsk', skuespillere = 'Joan Plowright, Jeff Daniels, Glenn Close, Joely Richardson', beskrivelse = '101 Dalmatiner vil betage store som små i denne eventyrs komedie, fem gange Academy Award nomineringer er det blevet til for Glenn Close, forrygende god i rollen som den pels fikserede dame. Aldrig er der blevet brugt så mange og så søde hvalpe i nogen anden film', andet = 'Theatrical Trailer "The magic is real" Special Effects Featurette "Dogs Stars" Featurette "Cruella De Vil" Music Video by Dr. John "Connect The Spots" Interactive Game', pic_url = 'http://www.rent-a-movie.dk/pics/film/0023.jpg' WHERE id = '23'
og det kode der skulle gemme det i databasen: --------------------------------------------- <? db_con(); // Henter filmen der er valgt $query = mysql_query("SELECT * FROM www_filmliste WHERE id = '$id'"); while ($row = mysql_fetch_array($query)) { $titel = $row[titel]; $udg_dato = $row[udg_dato]; $instruktoer = $row[instruktoer]; $varighed = $row[varighed]; $sprog = $row[sprog]; $skuespillere = $row[skuespillere]; $beskrivelse = $row[beskrivelse]; $andet = $row[andet]; $pic_url = $row[pic_url]; }
1 = OK 0 = Ikke OK. Fejlen var nemlig, at du hentede data fra databasen med den id (under // Henter filmen der er valgt) og disse får tildelt variabler $titel, $udg_dato m.m. og samme variabler bliver lagt ind i databasen igen og derfor bliver den ikke opdateret.
clausjul >> Et eller andet et gået galt da vi har rodet med koden :) Den opdatere godt nok fra formen til databasen, men nu nulstiller den bare den row der hedder kategori?? Har du en ide om hvad det kan skyldes?
Nå, fandt selv ud af det...manglede lige en funktion: $kategori = implode(", ", $_POST["box"]);
Synes godt om
Ny brugerNybegynder
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.