23. august 2005 - 12:39Der er
14 kommentarer og 1 løsning
hive noget ud fra en database
Hey Perl eksperter
Så bliver der endnu en gang brug for jeres hjælp.
Jeg har fået lavet et mini script der tager nogle data ind fra nogle forms og smider det op i en database.
------------------------------------------
#!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')");
$dbh->disconnect();
---------------------------------------- Det virker helt fint, men jeg kan simpelthen ikke lige gennemskue hvordan jeg får mine data ud fra databasen igen.
Det skal gerne være sådan at jeg kan tage hver del ud for sig, altså at jeg kan tage title, links og descrip ud hver for sig og smide ind et sted i en tabel f.eks.
Jeg har et par bøger om emnet men jeg kan ikke få det til at virke, så håber der er en venlig sjæl der kan hjælpe mig.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
#!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 $sql = "SELECT * FROM bookmark"; my $sth = $dbh->prepare($sql); $sth->execute();
while (my @row = $sth->fetchrow_array ) { print "@row\n"; }
forstår slet ikke man kan glemme det :) jeg hjælper gerne hvor jeg kan, og så er det jo dejligt at få hjælp tilbage igen.
Men du har min mail hvis du ombestemmer dig.
Kan være du lige kan hjælpe mig med en sidste ting.
Det script jeg skal lave skal fungere ala en gæstebog faktisk. Det vil sige jeg gerne vil ha lavet det sådan --------------- |titel | --------------- --------------- |link | --------------- --------------- |beskrivelse | --------------- og så forfra igen.
jeg har lavet det sådan
while (my @row = $sth->fetchrow_array ) { my $title = "$row[1]"; my $link = "$row[2]"; my $beskrivelse = "$row[3]"; }
Så jeg hiver hver led ud i en variabel, men problemet er jo at den sætter allte titler efter hinanden alle links efter hinanden og alle beskrivelser efter hinanden
det problem har jeg imidlertidig løst ved at sætte WHERE id=1 ind i mit sql sætning, men meningen er jo den gerne skal liste alle neden under hinanden i en mini tabel jeg har lavet.
Kan man på nogen måde sætte ind så den laver en løkke og forhøjer id konstant og så udskriver tabelen igen og igen.
Det var svært at forklare håber du forstår mig.
Jeg har prøvet mig lidt frem med at definere id til at stige med en, men synes ikke rigtig jeg kan få det til at virke helt.
på forhånd tak, og sig til hvis du skal have lidt ekstra point for det :)
se det var bare ORDER BY jeg skulle bruge, må hellere få læst lidt på de mest brugte sql ting, de viser sig jo at være rigtig gode og effektive. Endnu en gang mange tak. hvis jeg gør noget dumt i min kode må du endelig bare sige til. Man lærer jo af kritik.
det er rigtig smart, jeg ser tusind tak, og du hører nok mere fra mig hvis du tjekker perl kategorien hehe
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.