retake, det tog lidt tid (det er komplekst og samtidig har jeg selv nogle spoergsmaal ude som jeg har maattet arbejde med.) Er spoergsmaalet stadig aktuelt?
Jeg forstaar at du har forskellige php funktioner for insert, update, og delete og dem vil du gerne have samlet i en enkelt funktion. Det kan ogsaa godt lade sig goere. Jeg er kommet et stykke vej. Foerst et par kommentarer:
(1) Du definerer dato som date("M d, Y"). Det synes min mysql ikke om. I den kode jeg har testet med har jeg har derfor brugt date("Y-m-d"), men det kan du bare bytte ud igen med dit foretrukne format hvis du kan faa det til at virke.
(2) Saa er jeg ikke helt paa hoejde med det med Java::Alert.... og Java::GoToURL.... I den kode jeg har testet med har jeg blot brugt "or die(mysql_error())" og jeg har ikke testet Java::GoToURL...
(3) Yderligere for at teste har jeg lavet en simpel html formular med input felter for do, id, subject, og content. Jeg inkluderer ikke nogen validering. Jeg gaar ud fra at du i din egen kode soerger for at do er forpliktet og kun kan have vaerdierne new, edit, og delete og at hvis metoden er new skal id vaere blank.
(4) Saa har jeg i min testkode ikke lavet nogen session, saa $_SESSION['username'] er tom. Men koden virker med og uden indhold i den variabel.
(5) Yderligere gaar jeg ud fra at den tabel du bruger kun har felterne id, subject, content, date, and created by og at id er auto_increment. I saafald er det ikke noedvendigt at sige "INSERT INTO osa_news(subject, content, date, created_by) VALUES(....)". Det er kortere blot at indsaette '' for id og saa sige "INSERT INTO osa_news VALUES('', $subject, $content ....)"
(6) For at teste har jeg lavet en mysql tabel der hedder retake. Dette navn forekommer derfor i min test kode i stedet for osa_news.
(7) Min foreslaaede loesning gaar saaledes: Naar formularen er fyldt ind og der er trykket paa Submit, if($_POST['submit']), saa laver jeg foerst alle de noedvendige variable, dels fra input fra formen, dels date og $_SESSION['username'] og enkelte tekststrenge. Saa tester jeg vaerdien af do og laver for hver af de tre muligheder en querystring sammensat af variabler, og derefter sender jeg det til mysql. Til den ende har jeg foreloebig kun lavet query strengen for new. Men hvis du er interesseret kan jeg tilfoeje query strengene ogsaa for edit og delete. Det bliver saa nok foerst i morgen aften paa grund af andre forpligtelser.
Jeg har lavet denne simple test hjemmeside som du kunne kikke paa:
http://christianjorgensen.be/retake.phpHer er saa min test kode:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd"><html>
<head>
<title></title>
</head>
<body>
<?
$link = mysql_connect ('christianjorgensen.be.mysql', 'christianjoygen', 'dnyBKKbe') or die(mysql_erorr());
mysql_select_db('christianjoygen') or die('Could not select database');
if($_POST['submit'])
{
if($_POST['do']) $do = $_POST['do'];
if($_POST['id']) $id = $_POST['id'];
if($_POST['subject']) $subject = $_POST['subject'];
if($_POST['content']) $content = $_POST['content'];
$date = date("Y-m-d");
if($_SESSION['username']) $created_by = $_SESSION['username'];
$table = "retake";
$die = 'or die(mysql_error())';
$java1 = 'Java::GoToURL("?management=man_news&type=edit")';
$java2 = 'Java::GoToURL("?management=man_news")';
if($do = "new") $query = "INSERT INTO " . $table . " VALUES('', '" . $subject . "', '" . $content . "', '" . $date . "', '" . $created_by . "')";
mysql_query($query) or die(mysql_error());
}
mysql_close($link);
?>
<form action= "<? print $_SERVER["PHP_SELF"];?>" method=POST>
do <input type="text" name="do" /><br/>
id <input type="text" name="id" /><br/>
subject <input type="text" name="subject" /><br/>
content <input type="text" name="content" /><br/>
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>