if ($id) { mysql_query("UPDATE nyheder SET dato = '$dato', overskrift = '$overskrift', tekst = '$tekst', forfatter = '$forfatter' WHERE id = '$id'") or die(mysql_error()); }
else { mysql_query("INSERT INTO nyheder (dato, overskrift, tekst, forfatter) VALUES ('$dato', '$overskrift', '$tekst', '$forfatter')") or die(mysql_error()); }
}
?>
<HTML> <HEAD> <TITLE>Admin til nyheder part 2 (tilføj billede)</TITLE> </HEAD> <BODY> <H1>Dette er teksten:</H1>
<? $result = mysql_query("SELECT id, overskrift, tekst, forfatter, billede, DATE_FORMAT(dato, '%d-%m-%Y') AS formateretdato FROM nyheder order by id desc limit 1") or die(mysql_error());
if(isset($billede)) { $desti="../../billeder/";// stien hvor filen skal gemmes $desti.=$billede_name; if (copy($billede,$desti)) { print "Billede tilføjet"; echo mysql_query("UPDATE nyheder set billede = '$billede_name' WHERE id = $lastid") or die(mysql_error()); }
else { print "Der skete en fejl, billede ikke tilføjet"; } unlink($billede);
Du kan ikke gøre det af to omgange. Det skal ske umiddelbart efter din INSERT. Jeg læser ovenstående som at du først indsætter et nyhed, og så i en ny form vælger et billede. Er det korrekt?
det er underligt. Jeg har sat den til at gemme billedid lige efter, der er blevet indsat - og jeg kan også printe den rigtige værdi ud - men jeg kanh ikke opdatere under den id...
Nej, med last_insert_id() / mysql_insert_id() registreres den autonummererede id pr. connection. Dermed er den sikker. Så min anbefaling er klart at finde ud af i ovenstående kode hvordan man holder styr på den. Det kan ikke være så svært. Men ok, hvis spørgeren er tilfreds - fx hvis han er den eneste der bruger systemet - så er det jo godt nok.
øøh, jeg er selvfølgelig interesseret i den mest sikre løsning. Jeg konstaterede blot, at JakobAs løsning fungede, hvilket ikke var tilfældet med last_insert_id() eller mysql_insert_id
Hvis nogle har bud på, hvordan disse kan implementeres tilfredsstillende i koden er jeg lydhør
erikjacobsen > kan samtidige requests ikke bruge hinandens connection? Hmm... nu burde jeg jo nok oprette et spørgsmål selv, for det er noget jeg har tænkt lidt over... men hvis du lige vidste det, kunne det jo være rart at vide....
grunden til, at jeg tvivlede lidt var, at MySQL jo ikke håndterer transaktioner, og en sådan opførsel for last_insert_id() ville jo være noget der lignede en transaktion....
klgn: Jo, du skal jo holde styr på hvor de oplysninger du har brug for kommer fra. Hvorfor oploader man ikke billeder med det samme? Kan det ikke gøres samtidigt skal du så blot finde ud af hvor den tomme værdi, du så før kommer fra.
erikjacobsen-> ja, det ku jeg godt have sagt mig selv... Problemet er blot, at mit kendskab til disse funktioner er ret begræsent - for ikke at sige ikke-eksisterende. Jeg har virkelig kigge på koden - og jeg kan ikke finde ud af, hvordan den værdi pludselig skal blive nullet - især ikke når jeg beder mysql_insert_id() ind lige efter insert into...
if ($id) { mysql_query("UPDATE nyheder SET dato = '$dato', overskrift = '$overskrift', tekst = '$tekst', forfatter = '$forfatter' WHERE id = '$id'") or die(mysql_error()); }
else { mysql_query("INSERT INTO nyheder (dato, overskrift, tekst, forfatter) VALUES ('$dato', '$overskrift', '$tekst', '$forfatter')") or die(mysql_error());
$maxid=mysql_last_insert(); }
}
?>
<HTML> <HEAD> <TITLE>Admin til nyheder part 2 (tilføj billede)</TITLE> </HEAD> <BODY> <H1>Dette er teksten:</H1>
<?
$result = mysql_query("SELECT id, overskrift, tekst, forfatter, billede, DATE_FORMAT(dato, '%d-%m-%Y') AS formateretdato FROM nyheder order by id desc limit 1") or die(mysql_error());
if(isset($billede)) { $desti="../../billeder/";// stien hvor filen skal gemmes $desti.=$billede_name; if (copy($billede,$desti)) { print "Billede tilføjet"; echo mysql_query("UPDATE nyheder set billede = '$billede_name' WHERE id = '$maxid'") or die(mysql_error());
}
else { print "Der skete en fejl, billede ikke tilføjet"; } unlink($billede);
if ($id) { mysql_query("UPDATE nyheder SET dato = '$dato', overskrift = '$overskrift', tekst = '$tekst', forfatter = '$forfatter' WHERE id = '$id'") or die(mysql_error()); }
else { mysql_query("INSERT INTO nyheder (dato, overskrift, tekst, forfatter) VALUES ('$dato', '$overskrift', '$tekst', '$forfatter')") or die(mysql_error());
}
}
?>
<HTML> <HEAD> <TITLE>Admin til nyheder part 2 (tilføj billede)</TITLE> </HEAD> <BODY> <H1>Dette er teksten:</H1>
<?
$result = mysql_query("SELECT id, overskrift, tekst, forfatter, billede, DATE_FORMAT(dato, '%d-%m-%Y') AS formateretdato FROM nyheder order by id desc limit 1") or die(mysql_error());
if(isset($billede)) { $desti="../../billeder/";// stien hvor filen skal gemmes $desti.=$billede_name; if (copy($billede,$desti)) { print "Billede tilføjet"; echo mysql_query("UPDATE nyheder set billede = '$billede_name' WHERE id = '$maxid'") or die(mysql_error());
}
else { print "Der skete en fejl, billede ikke tilføjet"; } unlink($billede);
Kendte ikke den med = - men man skal jo også blive klogere hver dag:)
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.