Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- #nos conectamos con la base de datos para luego poder acceder a eso documentos
- use DBI;
- $db="documentos";
- $host="localhost";
- $port="3306"; # puerto mysql
- $usuario="root";
- $pw="database";
- #realizamos la conexion a la base de datos
- $connectionInfo="DBI:mysql:database=$db;$host;$port";
- $conexion=DBI->connect($connectionInfo,$usuario,$pw);
- #tendremos que ordenar los articulos por autor y haremos tantos grupos como autores haya,los cogeremos de autor_escribe, para ello tendremos q coger el codigo del autor y con el ir a la tabla de autores y acceder al nombre asignado a ese cogido, ese nombre sera el nombre del grupo , y para asignarle articulos cogeremos el codigo_articulo de la tabla autor_escribe e iremos a la tabla articulos y con ese codigo cogeremos el link y el titulo relacionado.
- open(RESULTADO, ">jerarquia_autor.txt");
- $count="SELECT count(distinct codigo_autor) FROM autores";
- $consulta=$conexion->prepare($count);
- $consulta->execute();
- @data = $consulta->fetchrow_array(); #nos deja en el array el número de autores que hay
- $consulta->finish();
- $num_autores="$data[0]";
- # la tabla autores tiene dos campos: codigo_autor y nombre.
- my ($titulo,$link);
- $cont="1";
- while ($cont le $num_autores){
- $query="SELECT nombre FROM autores where codigo_autor=$cont";
- $consulta=$conexion->prepare($query);
- $consulta->execute();
- @data = $consulta->fetchrow_array();#nos deja en el array el nombre del autor que tiene el código indicado en la consulta
- $consulta->finish();
- print RESULTADO $data[0]."\n"; # escribe en el fichero el nombre del autor, que coincidirá con el nombre de cada grupo
- #ahora quiero que me coja todos los códigos de los artículos que escribe ese autor, para eso voy a la tabla autor_escribe que tiene dos campos (cod_articulo y cod_autor) y hago la siguiente consulta
- $query="SELECT cod_articulo FROM autor_escribe where cod_autor=$cont"; #**********ESA CONSULTA ME DA MAL********************
- $consulta=$conexion->prepare($query);
- $consulta->execute();
- @articulos = $consulta->fetchrow_array(); ####solo tienen el primer artículo en vez de todos(en la consola con la misma query devuelve todos)
- $consulta->finish();
- # por cada articulo iría a la tabla artículos con el cod_articulo y cogería los datos que me interesan
- foreach $articulo (@articulos){
- $query="SELECT identificativo,tittle FROM articulos where codigo=$articulo";
- $consulta=$conexion->prepare($query);
- $consulta->execute();
- @data = $consulta->fetchrow_array();#nos deja en el array los datos del resultado de la consulta
- $consulta->finish();
- $titulo="$data[0]";
- $link="$data[1]";
- print RESULTADO "\t".$titulo."\n";
- print RESULTADO "\t"."\t".$link."\n";
- }
- $cont++;
- }
- print RESULTADO " Artículos sin autor conocido";
- $query="SELECT cod_articulo FROM autor_escribe where cod_autor=0";
- $consulta=$conexion->prepare($query);
- $consulta->execute();
- @articulos = $consulta->fetchrow_array(); #nos deja en el array los datos del resultado de la consulta
- $consulta->finish();
- foreach $articulo (@articulos){
- $query="SELECT identificativo,tittle FROM articulos where codigo=$articulo";
- $consulta=$conexion->prepare($query);
- $consulta->execute();
- @data = $consulta->fetchrow_array();#nos deja en el array los datos del resultado de la consulta
- $consulta->finish();
- $titulo="$data[0]";
- $link="$data[1]";
- print RESULTADO "\t".$titulo."\n";
- print RESULTADO "\t"."\t".$link."\n";
- }
- close(RESULTADO);
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Bueno, si alguien tiene alguna idea de cómo lo puedo hacer, por favor, que me ayude, porque ¡¡¡estoy ya desesperada!!! ¡¡¡¡Gracias por adelantado!!!!