Avatar billede triple-x Nybegynder
06. oktober 2005 - 15:39 Der er 1 kommentar og
1 løsning

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&oslash;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.
Avatar billede triple-x Nybegynder
07. oktober 2005 - 20:21 #1
er det ingen der kan klare den? burde ellers ik være noget avanceret.
Avatar billede triple-x Nybegynder
08. oktober 2005 - 23:25 #2
en simpel if sætning hjalp på problemet, havde prøvet det men havde lavet en fejl.

if ($title and $link and $descrip) {
$dbh->do("INSERT INTO bookmark values(id,'$title','$link','$descrip')");
}

rediger og refresh problemet er endnu ikke løst.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester