Como verán cuando guardo la descripción, riesgo y recomendación tuve que hacer 3 SELECT, pero quiero ver la posibilidad de achicar un poco el código.
Por otro lado quería consultarles cómo puedo hacer para asociar la variable $contador con el nombre de cada elemento que sale de $row[0], ya que me gustaría poder hacer que no se tenga que escribir el nombre del elemento como ahora, sino su número que sale por pantalla y separado por coma con otros. Así se listan varios y no solo uno.
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use DBI;
- if ( @ARGV != 0 ) {
- die "###############################################################\n"
- . "# Crear reporte #\n"
- . "###############################################################\n\n"
- ;
- }
- ############ Variables ############
- $contador=0;
- use utf8;
- ############ Conecto a la DB ############
- my $dbh = DBI->connect(
- "dbi:SQLite:dbname=issues_descripcion.s3db",
- "",
- "",
- {
- RaiseError => 1,
- sqlite_unicode => 1,
- },
- ) or die $DBI::errstr;
- ########### Creamos el documento word ############
- use MsOffice::Word::HTML::Writer;
- my $doc = MsOffice::Word::HTML::Writer->new(
- title => "Reporte",
- WordDocument => {View => 'Print'},
- );
- $doc->create_section(
- page => {size => "21.0cm 29.7cm",
- margin => "1.2cm 2.4cm 2.3cm 2.4cm"},
- );
- ############ Listado de vulnerabilidades ############
- print "\n\nListado de las vulnerabilidades almacenadas:\n";
- my $sth = $dbh->prepare("SELECT issues FROM informacion");
- $sth->execute();
- while (my @row = $sth->fetchrow_array) {
- $contador ++;
- print "$contador - $row[0]\n";
- #$doc->write("<p>$contador - $row[0]</p>\n",
- #);
- }
- print "\n\nIngrese el nombre de la vulnerabilidad: ";
- $issues = <>;
- chomp $issues;
- print "Vulnerabilidad ingresada: $issues";
- $doc->write("<p><h2><b>$issues</b></h2></p>\n");
- $doc->write("<p><h3><b>Observacion:</h3></b></h2></p>\n");
- my $sth = $dbh->prepare("SELECT observacion FROM informacion WHERE issues='$issues'");
- $sth->execute();
- while (my @row = $sth->fetchrow_array) {
- $doc->write("<p>$row[0]</p>\n",
- );
- }
- my $sth = $dbh->prepare("SELECT riesgo FROM informacion WHERE issues='$issues'");
- $sth->execute();
- $doc->write("<p><h3><b>Riesgo:</h3></b></h2></p>\n");
- while (my @row = $sth->fetchrow_array) {
- $doc->write("<p>$row[0]</p>\n",
- );
- }
- my $sth = $dbh->prepare("SELECT recomendacion FROM informacion WHERE issues='$issues'");
- $sth->execute();
- $doc->write("<p><h3><b>Recomendacion:</h3></b></h2></p>\n");
- while (my @row = $sth->fetchrow_array) {
- $doc->write("<p>$row[0]</p>\n",
- );
- }
- $doc->save_as("reporte.doc");
- $sth->finish();
- $dbh->disconnect();
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
Muchas gracias.