lidt blandet omkring perl
Så skal jeg have lidt hjælp igen.Har 3 spørgsmål. (hele koden er i bunden af dette spørgsmål)
1. $dbh->do("INSERT INTO bookmark values(id,'$title','$link','$descrip')"); --> hvordan får jeg lavet det sådan at denne linie kun afvikles en gang i mit script. Har prøvet lidt med en if sætning, men synes ikke jeg kan få det til at virke. Problemet er når jeg klikker på en slet knap i mit script så opretter den en tom entry da den kører $dbh igen
2. Skal have lavet en form for rediger funktion hvor den går over på en ny side hvor formen er fyldt ud med de data der er taget igennem ID'et fra databasen. Hvordan gøres dette? Jeg kan godt finde ud af at sende dem tilbage og lave en update i databasen ( tror jeg )
3. er der nogen måde at få den til at opdatere sig selv, når man sletter et indlæg skal man selv benytte F5 for at se det er forsvundet jeg har ledt lidt efter en no-cache funktion men kan ikke finde noget der virker.
Htmlkoden jeg bruger til at tilføje entries
<form name="form1" method="post" action="../cgi-bin/index.pl">
<p> Titel : <input name="title" type="text">
</p>
<p> Link : <input name="link" type="text">
</p>
Beskrivelse:<br>
<textarea name="descrip"></textarea><br>
<br>
<input name="Reset" value="Reset" type="reset"> <input name="Submit" value="tilføj" type="submit">
</form>
-------------------------------------------------------
Perl Koden
#!c:/perl/bin/perl.exe
use strict;
use CGI ':standard';
use DBI;
print "Content-type: text/html\n\n";
my $DataBaseName = "bookmark";
my $DataBaseHost = "localhost";
my $DataBaseUser = "root";
my $DataBasePass = "";
my $dbh = DBI->connect("DBI:mysql:database=$DataBaseName;host=$DataBaseHost",
"$DataBaseUser",
"$DataBasePass",
{ RaiseError => 1,
AutoCommit => 0 }) || die "Unable to connect to $DataBaseHost because $DBI::errstr";
my $title = param('title');
my $link = param('link');
my $descrip = param('descrip');
$dbh->do("INSERT INTO bookmark values(id,'$title','$link','$descrip')");
#henter data ind fra databasen
my $sql = "SELECT * FROM bookmark ORDER BY id DESC";
my $sth = $dbh->prepare($sql);
$sth->execute();
#slet funktionen
my $id = param('slet');
my $rows_deleted = $dbh->do(q[DELETE FROM bookmark WHERE id =?], undef, $id) || print "Problem deleting \$id=$id $dbh->errstr";
#outputtet
while (my ($id, $title, $link, $descrip) = $sth->fetchrow_array ) {
print qq(
<style type="text/css">
<!--
table {
border:1px solid black;
}
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
}
.style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
-->
</style>
<table width="631">
<tr>
<td colspan="4"><span class="style1"><a href="$link">$title</a></span></td>
</tr>
<tr valign="top">
<td colspan="4"><span class="style2">$descrip</span></td>
</tr>
<tr>
<td width="54"><a href="rediger.pl"><img src="../rediger.jpg" width="54" height="13" border="0"></a></td>
<td width="529"><a href="?slet=$id"><img src="../slet.jpg" width="54" height="13" border="0"></a></td>
<td width="15"><img src="../op.jpg" width="15" height="15" border="0"></td>
<td width="15"><img src="../ned.jpg" width="15" height="15" border="0"></td>
</tr>
<br>
</table>);
}
$dbh->disconnect();
-----------------------------------------------------------
På forhånd mange tak.
