Bonjour,
j'aimerais lire deux fichiers avec des url
url1.txt (ancienne url)
url2.txt (nouvelle url)
afin de faire un changement dans une base
Je recupere mes lignes de la facon suivante :
et je lance une boucle pour la requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 my @liste1; if (open(FILE1,$fic1)) {@liste1 = <FILE1>;} else {print "Erreur lecture :$!\n";} close(FILE1); my @liste2; if (open(FILE2,$fic2)) {@liste2 = <FILE2>;} else {print "Erreur lecture :$!\n";} close(FILE2);
Voila la sortie que j'obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $j = 0 ; do { my $url1 = "$liste1[$j]" ; my $url2 = "$liste2[$j]" ; $query="select idurl, url from master.murl where url Like \'%$url1%\'" ; $sth = $dbh->prepare($query); $sth->execute(); $i=0; while ( @row = $sth->fetchrow_array ) { if($row[1] =~ /$url1/ ) { print $url1 ; # ici la valeur est perdu print $url2 ; # ici la valeur est perdu print "\n" ; print "$row[0]\t$row[1]\n"; $row[1] =~ s/$url1/$url2/g ; $row[1] =~ s/\s+$//; # suppression des espaces en fin de ligne print "$row[0]\t$row[1]\n"; $query2="update master.murl set url = '$row[1]' where idurl = '$row[0]'"; $sth2 = $dbh->prepare($query2); $sth2->execute(); $sth2->finish(); $i++; } } $j ++ ; }until ($j eq $nbl2) ; $sth->finish();
En fait j'aimerais savoir comment faire passer mes deux variables $url1 et $url2 dans le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8www.google.fr www.yahoo.fr www.free.fr www.noos.fr 0 voulez vous valider les changement O/N
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while ( @row = $sth->fetchrow_array )
Partager