16. august 2004 - 14:21Der er
29 kommentarer og 1 løsning
Sende brugeren til en ny side.
Hejsa.
Jeg har en side hvor man kan redigere i noget af den tekst som man har skrevet. Desværre er det sådan, at når brugeren klikker på "Submit", så skal den overskrive data i db'en, og samtidig sende brugeren til en ny side.
Ja, det kan jeg godt forstå. $ID bliver slet ikke brugt i koden her. ID henviser derimod til et felt i din database. $arbejdssdl skal vel så indeholde ID fra din form, som kunne ligges i et hidden felt. Men du er nødt til at rette navnene i din form, ellers er det rent gætværk. Og så brug '$data[feltnavn]' istedet for '$data[0]', så er det meget nemmere at finde rundt i.
ID plejer at være et unikt nummer der identificerer den enkelte række i tabellen entydigt. Man laver det gerne med autonummerering, så databasen selv indsætter et nyt nummer til hver række.
Hmmm. Den er jeg ikke lige med på. Nu er det jo ikke nødvendigt at jeg skal bruge denne kode. Hvis du har en bedre forslag, som måske er mere simpelt, er jeg villig til at se på det.
Du skal bruge et felt i databasen som ikke kan være det samme i flere rækker (fx: ID) osse kaldet en primærnøgle. Jeg ved ikke om arbejdssdl er et sådan felt? Hvis du ikke har det må du tilføje et felt.
arbejdssdl, er aldrig det samme. Det vil altid være forskelligt. Jeg tror sgu jeg kommer til at droppe ID funktionen. Den gør åbenbart mere skade end gavn. Det kan jeg vel godt, og så stadig bruge UPDATE og sende brugeren til en ny side, når han har klikket på Submit.
Det er jo nok denne her som skal ændres en smule. Du skal ikke tage dig af, at jeg endnu ikke har alle de andre felter fra min DB med endnu, da dette stadig kun er på "foster stadiet"
// Update values $query = "UPDATE $db SET Dato = '$dato', tiden = '$tiden', afsluttet = '$afsluttet' WHERE ID = $arbejdssdl"; $result = mysql_query($query);
Nej du har jo ikke et felt der hedder ID. Den skal være i den her stil:
$query = "UPDATE logfil SET dato = '$dato', tiden = '$tiden', afsluttet = '$afsluttet' WHERE arbejdssdl = $arbejdssdl"; $result = mysql_query($query) or die(mysql_error());
Jamen du skal rette navnene i din form. Det nytter jo ikke du bruger navne som: 'data0', 'data1', osv. og du så prøver at modtage dem med: $_POST['tiden'], $_POST['afsluttet'].
Der er lige en enkelt linie, som jeg lige er lidt i tvivl om. Vi blev tidligere enige om, at jeg ikke havde behov for "ID" fuktionen. Men hvad så med denne linie?
if (isset($_POST['Submit']) && $_POST['Submit'] == 'Submit') { // Format the data $dato = date('d/m-Y'); $tiden = $_POST['tiden']; $afsluttet = $_POST['afsluttet']; $arbejdssdl = $_POST['arbejdssdl'];
// Update values $query = "UPDATE logfil SET dato = '$dato', tiden = '$tiden', afsluttet = '$afsluttet' WHERE arbejdssdl = '$arbejdssdl'"; mysql_query($query) or die(mysql_error()); }
Det kan jeg godt forstå. Har ikke beskrevet det så tydeligt. Før vi gik igang blev, når jeg trykkede på "submit" knappen, blev jeg sendt til en ny side. Den klassiske fejl side i explorer. Samtidig blev der ikke opdateret noget. Lige nu, svarer det til at klikke på opdater knappen i explorer. Der bliver ikke opdateret noget i min db, men jeg ryger ikke til en fejlside
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.