PDA

Tam Sürümünü Görmek İçin : perl ile ilgili bir soru??


webmeraklisi
17/11/2003, 13:17
merhaba aşagıdaki kodda bir hata var nasıl düzelteceğim mesela kod içindeki bu if döngüsü çalışmıyor yani fiyat ve para_birim alanlaını kullandığım tüm döngüler çalışmıyor...bu kdo normalde id numarasını yazdığım ürünün tüm o alanlardaki verilerini görüntülüyor ama ben iki alanı birlikte bir if döngüsünde bir işlem için kullanıca çalışmıyor mesela bu kodda if($para_b ne "1"){
$fiyathavalen1=$fiyat." \€ +KDV"; kısmında else kısmını çalıştırmıyor...else deyimini kurunca çalışmıyor....hepsine \€ +KDV yazıyor...yani ilk ne yaz yazdıysam tüm seçeneklerde onu yazıyor ne yapmam lazım???


if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
$fiyat=$fiyat*975/1000;
if($para_b ne "1"){
$fiyathavalen1=$fiyat." \€ +KDV";
$fiyathavale1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyathavalen1</b></font>";
}else{
$fiyathavalen1=$fiyat." \$ +KDV";
$fiyathavale1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyathavalen1</b></font>";
}


}
}







kodun tamamı.....

$id=$FORM{'id'};
$id=int($id);
$konu=$FORM{'konu'};
if ($konu eq ""){
$konu=&konuof($id);
}
$urun="";
if ($konu eq "bil"){
$urun="bil_urun";
$bgclr="#E8F3F9";
$pdfbgclr="#333399";
}
if ($konu eq "kam"){
$urun="kam_urun";
$bgclr="#E8F3F9";
$pdfbgclr="#333399";
}
if ($konu eq "elek"){
$urun="elek_urun";
$bgclr="#F5EEDC";
$pdfbgclr="#835A36";
}
if ($konu eq "yaz"){
$urun="yaz_urun";
$bgclr="#E9F3DE";
$pdfbgclr="#336633";
}
if ($konu eq "home"){
$urun="siparis1";
$bgclr="#ffffff";
$pdfbgclr="#ffffff";
}
$s_str=$FORM{'s_str'};
$exact=$FORM{'chk'};

print "Content-type: text/html \n\n";

$alanlar=&fieldlist("urun_alan");
$bilgiler=&bilgioku($id,0);
@alan_e=split(/:/,$alanlar);
@bilgi_e=split(/:/,$bilgiler);
$say=0;
$alan_adi="";
$gec="";
$send="";
foreach $alan_adi(@alan_e){
$gec=@bilgi_e[$say];
if($alan_adi eq "urun_adi"){
if($gec ne "0"){
$u_ad=$gec;
}
}
if($alan_adi eq "urun_kod"){
if($gec ne "0"){
$u_kod=$gec;
}
}
if($alan_adi eq "satis_cumle"){
if($gec ne "0"){
$s_cumle=$gec;
}
}
if($alan_adi eq "aciklama"){
if($gec ne "0"){
$aciklama=$gec;
}
}

if($alan_adi eq "fiyat"){
if($gec ne "0"){
$fiyat=$gec;
}
}
if($alan_adi eq "htm"){
if($gec ne "0"){
if ($s_str ne ""){
@strs=split(/ /,$s_str);
if (open(HTMFILE,"$kok/htm/info/$gec")){
while($htmstr=<HTMFILE>){
foreach $str(@strs){
if ($exact eq "on"){
$htmstr=~ s/\b$str\b/$&/ei;
$match=$&;
$htmstr=~ s/\b$str\b/\<b\>$match\<\/b\>/i;
}else {
$htmstr=~ s/$str/$&/ei;
$match=$&;
$htmstr=~ s/$str/\<b\>$match\<\/b\>/i;
}
}
$htm.=$htmstr;
}
}else{$htm="";}
}else{
if (open(HTMFILE,"$kok/htm/info/$gec")){
while($htmstr=<HTMFILE>){
$htm.=$htmstr;
}
}else{$htm="";}
}
}
}
if($alan_adi eq "pic"){
if($gec ne "0"){
$pic="<img border=0 height=123 src=$def_url/htm/pic/$gec>";
}else{
$pic="<img border=0 height=123 width=100 src=/shim.gif>";
}
}

if($alan_adi eq "amblem"){
if($gec ne "0"){
$amblem="<img src=$def_url/htm/logo/$gec >";
}else{$amblem="<img src=shim.gif width=164 height=56>";}
}
if($alan_adi eq "platform"){
$plat=int($gec);
if ($plat == 0){
$winpic="shim.gif";
$surucu="";
$uyumlu="";
$macpic="shim.gif";
}elsif ($plat==1){
$winpic="win.jpe";
$uyumlu="Uyumludur";
$macpic="shim.gif";
}elsif($plat==2){
$winpic="shim.gif";
$uyumlu="Uyumludur";
$macpic="mac.jpe";
}elsif($plat==3){
$winpic="win.jpe";
$uyumlu="Uyumludur";
$macpic="mac.jpe";
}
else{
}
}
if($alan_adi eq "pdf"){
if($gec ne "0"){
$pdf1="<a href=$def_url/ftp/pdf/$gec><img src=http://www.tetris.com.tr/reklam/pdflogo.jpg width=39 height=35 valign=top></a>";
$pdf.="<font face=\"Arial, Helvetica\">$pdf1</font>";
}
}
if($alan_adi eq "win"){
if($gec ne "0"){
$win="<option>PC</option>";

}
}
if($alan_adi eq "mac"){
if($gec ne "0"){
$mac="<option>MAC</option>";
}
}
if($alan_adi eq "para_birim"){
$para_b=$gec;
if ($para_b==2) {
$birim="\€ +KDV";
}else{
$birim="\€ +KDV";
}
}
if($alan_adi eq "logo1"){
if($gec ne "0"){
$logom="<a target=_blank href=$def_url/ftp/link/$gec><img src=http://www.tetris.com.tr/reklam/uruninceleme.jpg width=39 height=35 valign=top></a>";
$logo1.="<font face=\"Arial, Helvetica\">$logom</font>";
}
}
if($alan_adi eq "logo2"){
if($gec ne "0"){
$odul2="<img align=absMiddle border=0 name=govde_r4_c08 src=htm/logo/$gec>";
$oduller="Ürünün Kazandığı Ödüller";
}
}
if($alan_adi eq "logo3"){
if($gec ne "0"){
$odul3="<img align=absMiddle border=0 name=govde_r4_c08 src=htm/logo/$gec>";
$oduller="Ürünün Kazandığı Ödüller";
}
}
if($alan_adi eq "logo4"){
if($gec ne "0"){
$odul4="<img align=absMiddle border=0 name=govde_r4_c08 src=htm/logo/$gec>";
$oduller="Ürünün Kazandığı Ödüller";
}
}



$ua = new LWP::UserAgent;
$begin = "http://www.tcmb.gov.tr/kurlar/";
$data = $begin .'today.html';
$lookup = new HTTP::Request 'GET', "$data";
$response = $ua->request($lookup);
@lines = split (/\n/, $response->content);
foreach $item (@lines) {
chomp($item);
$item =~ s/\s+/|/g;
$tpl =$tpl.$item;
}
($part1,$part2) = split(/USD/,$tpl);
($part3,$part4) = split(/AUD/,$part2);
($_,$_,$_,$_,$part5,$part6,$efektifa_usd,$efektifs _usd) = split(/\|/,$part3);
($part7,$part8) = split(/EURO/,$tpl);
($part9,$part10) = split(/DEM/,$part8);
($_,$part11,$part12,$efektifa_euro,$efektifs_euro) = split(/\|/,$part9);
if ($efektifs_euro =~/BGL/) {
$efektifs_euro =~ s/BGL/ /;
}

my $tur = Number::Format->new(-thousands_sep => '.',
-decimal_point => ',',
-int_curr_symbol => 'TL';


if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$birim="\€ +KDV";
}
$fiyatnn.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyat $birim</b></font>";
}
}

if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=$fiyat*$efektifs_euro;
}else{
$fiyat=$fiyat*$efektifs_usd;
}
my $num1 = $fiyat;
my $para1 = $tur->format_number($num1);
$fiyatmn=$para1." TL +KDV";
$fiyatm.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyatmn</b></font>";

}
}


if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
$fiyat=$fiyat*975/1000;
if($para_b ne "1"){
$fiyathavalen1=$fiyat." \€ +KDV";
$fiyathavale1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyathavalen1</b></font>";
}else{
$fiyathavalen1=$fiyat." \$ +KDV";
$fiyathavale1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyathavalen1</b></font>";
}


}
}

if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=$fiyat*975/1000*$efektifs_euro;
$istenen = int($fiyat);
}else{
$fiyat=$fiyat*975/1000*$efektifs_usd;
$istenen = int($fiyat);
}
my $num = $istenen;
my $para = $tur->format_number($num);
$fiyathavalen=$para." TL +KDV";
$fiyathavale.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$fiyathavalen</b></font>";

}
}

if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=$fiyat*110/100*$efektifs_euro;
$istenen = int($fiyat);
}else{
$fiyat=$fiyat*110/100*$efektifs_usd;
$istenen = int($fiyat);
}
my $num2 = $istenen;
my $para2 = $tur->format_number($num2);
$toplamtutarn=$para2." TL +KDV";
$toplamtutar.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$toplamtutarn</b></font>";

}
}


if($alan_adi eq "fiyat"){
if($gec ne "0"){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=($fiyat*110/100*$efektifs_euro)/4;
$istenen = int($fiyat);
}else{
$fiyat=($fiyat*110/100*$efektifs_usd)/4;
$istenen = int($fiyat);
}
my $num3 = $istenen;
my $para3 = $tur->format_number($num3);
$ayliktutarn=$para3." TL +KDV";
$ayliktutar.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$ayliktutarn</b></font>";

}
}


if($alan_adi eq "fiyat"){
if(($gec ne "0") and ($gec >= 100)){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=$fiyat*115/100*$efektifs_euro;
$istenen = int($fiyat);
}else{
$fiyat=$fiyat*115/100*$efektifs_usd;
$istenen = int($fiyat);
}
my $num4 = $istenen;
my $para4 = $tur->format_number($num4);
$toplamtutarn1=$para4." TL +KDV";
$toplamtutar1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$toplamtutarn1</b></font>";

}else{
$toplamtutar1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b> - </b></font>";

}
}


if($alan_adi eq "fiyat"){
if(($gec ne "0") and ($gec >= 100)){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=($fiyat*115/100*$efektifs_euro)/6;
$istenen = int($fiyat);
}else{
$fiyat=($fiyat*115/100*$efektifs_usd)/6;
$istenen = int($fiyat);
}
my $num5 = $istenen;
my $para5 = $tur->format_number($num5);
$ayliktutarn1=$para5." TL +KDV";
$ayliktutar1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$ayliktutarn1</b></font>";

}else{
$ayliktutar1.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b> - </b></font><br>";

}
}


if($alan_adi eq "fiyat"){
if(($gec ne "0") and ($gec >= 100)){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=$fiyat*118/100*$efektifs_euro;
$istenen = int($fiyat);
}else{
$fiyat=$fiyat*118/100*$efektifs_usd;
$istenen = int($fiyat);
}
my $num6 = $istenen;
my $para6 = $tur->format_number($num6);
$toplamtutarn2=$para6." TL +KDV";
$toplamtutar2.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$toplamtutarn2</b></font>";

}else{
$toplamtutar2.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b> - </b></font>";

}
}


if($alan_adi eq "fiyat"){
if(($gec ne "0") and ($gec >= 100)){
$efektifs_usd =~ s/,//g;
$efektifs_euro =~ s/,//g;
$fiyat=$gec;
if ($para_b==2){
$fiyat=($fiyat*118/100*$efektifs_euro)/9;
$istenen = int($fiyat);
}else{
$fiyat=($fiyat*118/100*$efektifs_usd)/9;
$istenen = int($fiyat);
}
my $num7 = $istenen;
my $para7 = $tur->format_number($num7);
$ayliktutarn2=$para7." TL +KDV";
$ayliktutar2.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$ayliktutarn2</b></font>";

}else{
$ayliktutar2.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b> - </b></font>";

}
}



$say++;
}





if (($mac ne "") or ($win ne "")){
#######################################
$surucu.="<form method=post action=/cgi-bin/erkan/surucu.cgi name=surucuform>\n";
$surucu.="<font size=2 color=#993399 face=\"Arial, Helvetica\"><b>SÜRÜCÜLER</b>\n";
$surucu.="<select name=select size=1 onChange=document.surucuform.submit();>\n";
$surucu.="<option> </option>".$mac.$win."</select>";
$surucu.="<input type=hidden name=urun_id value=$id></font></form>\n";
}

$u_quer=qq{select konu_id from urun where kod=$id};
$u_sth=$dbh->query($u_quer);
@kon_id=$u_sth->fetchrow;
$k_link=&urun_konula(@kon_id[0]);

$c_quer1=qq{select * from sistem where ozellik='coksatan1' or ozellik='coksatan2'};
$c_sth1=$dbh->query($c_quer1);

while (@cok=$c_sth1->fetchrow){
$c_quer2=qq{select urun_adi from urun where kod=@cok[1]};
$c_sth2=$dbh->query($c_quer2);
@u_ad=$c_sth2->fetchrow;
$coksatan.="<tr bgcolor=$bgclr><td valign=top>\n<font face=\"verdana, helvetica, arial\" size=1>•</font></td><td width=168 bgcolor=$bgclr>";
$coksatan.="<a href=$def_url_cgi/erkan/urun.cgi?id=@cok[1]><font face=\"verdana, helvetica, arial\" size=1 class=siyah_link color=#000000>@u_ad[0]</font></a></td></tr>";
}


$an_quer=qq{SELECT max(no) FROM anket};
$an_sth=$dbh->query($an_quer);
@numbe=$an_sth->fetchrow;

$an_quer=qq{select soru from anket where no=@numbe[0]};
$an_sth=$dbh->query($an_quer);
@anketsoru=$an_sth->fetchrow;
if ($para_b==1){
$fiyat="\$".$fiyat."+KDV";
}else{
$fiyat.="\€ (KDV Dahil)";
}

$efektifs_eurom.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$efektifs_euro</b></font>";
$efektifs_usdm.="<font face=\"verdana, helvetica, arial\" size=1 color=#cc0000><b>$efektifs_usd</b></font>";

$AllOdul="$oduller <br> $odul1 $odul2 $odul3 $odul4";
&html("$kok/$urun.html",("euro",$efektifs_eurom,"dolar",$efektifs_usdm,"toplamtutar2",$toplamtutar2,"ayliktutar2",$ayliktutar2,"toplamtutar1",$toplamtutar1,"ayliktutar1",$ayliktutar1,"toplamtutar",$toplamtutar,"ayliktutar",$ayliktutar,"fiyathavale",$fiyathavale,"fiyathavale1",$fiyathavale1,"yer",$yer,"urun_adi",$u_ad,"urun_kod",$u_kod,"satis_cumle",$s_cumle,"fiyatm",$fiyatm,"oduller",$AllOdul,"aciklama",$aciklama,"fiyatnn",$fiyatnn,"fiyat",$fiyat,"htm",$htm,"pica",$pic,"amblem",$amblem,"surucu",$surucu,"konulink",$k_link,"coksatan",$coksatan,"anketsoru",@anketsoru[0],"win",$winpic,"mac",$macpic,"uyumlu",$uyumlu,"pdf",$pdf,"logo1",$logo1,"para_b",$para_b));

sub konuof{
local($mid)=@_;
$kkd=int($mid);
$quer=qq{Select konu_id from urun where kod=$kkd};
$sth=$dbh->query($quer);
@row=$sth->fetchrow;
$quer2=qq{Select onceki from konu where kod=@row[0]};
$sth2=$dbh->query($quer2);
@row2=$sth2->fetchrow;
if (@row2[0]==1){
return "bil";
}
if (@row2[0]==232){
return "home";
}
if (@row2[0]==7){
return "yaz";
}
if (@row2[0]==146){
return "kam";
}
if (@row2[0]==13){
return "elek";
}
}


sub urun_konula{
local($kid)=@_;
$dd=$kid;
while ($dd != 0){
$quer=qq{SELECT kf.super_kod, k.konusu FROM konu_ref kf, konu k WHERE kf.kod=$dd AND kf.kod=k.kod};
$sth=$dbh->query($quer);
@row=$sth->fetchrow;
if ($kid != $dd){
$bkonu = "<a href=$def_url_cgi/erkan/liste.cgi?pg=1&id=$dd&konu=$konu><font color=#ffffff>@row[1]</a> / </font> " . $bkonu;
} else {
$bkonu = "<a href=$def_url_cgi/erkan/liste.cgi?pg=1&id=$dd&konu=$konu><font color=#ffffff>@row[1]</a></font>" . $bkonu;
}
$dd = @row[0];
}
return($bkonu);
}

sub deflang{
local($idil)=@_;
if ($idil==0){
$dil_alan="default_dil";
}else{
$d_quer=qq{show columns from urun_text};
$s_quer=$dbh->query($d_quer);
for ($i=0; $i<$idil+3; $i++){
@num_col=$s_quer->fetchrow;
}
$dil_alan=@num_col[0];
}
return $dil_alan;
}


sub fieldlist{
local($f_tablo)=@_;
$f_quer=qq{select alan_adi from $f_tablo};
$s_quer=$dbh->query($f_quer);
while(@field=$s_quer->fetchrow){
$f_list.=":@field[0]";
}
$f_list=substr($f_list,1);
return $f_list;
}



sub bilgioku{
local($kod,$dil)=@_;
$s_dil=&deflang($dil);
$b_quer=qq{select * from urun where kod=$kod};
$b_set=$dbh->query($b_quer);
#print "\ndil:$s_dil\n";
$b2_quer=qq{select alan_adi,$s_dil,ref from urun_alan};
$b2_set=$dbh->query($b2_quer);

while(@b_rset=$b_set->fetchrow){
$saya=2;
while(@b2_rset=$b2_set->fetchrow){
$alan_tur=@b2_rset[2];
$alan_tur=int($alan_tur);
$alan_ad=@b2_rset[0];
if($alan_tur==0){
$giden=@b_rset[$saya-1];
if ($giden ne "") {
$geri_don.=":$giden";
}else{
$geri_don.=":0";
}
}else{
$b3_quer=qq{select $s_dil from urun_text where kod=$kod and alan=$alan_ad};
$b3_set=$dbh->query($b3_quer);
$b3_rset=$b3_set->fetchrow;
$giden=$b3_rset[0];
if ($giden ne "") {
$geri_don.=":$giden";
}else{
$geri_don.=":0";
}
}
$saya++;
}
}
$geri_don=substr($geri_don,1);
return $geri_don;
}


Ansugo
17/11/2003, 13:56
Tek diyebileceğim kodları daha düzgün olarak baştan yazmayı dene. Denerken her bölümde çıktıyı print ile ekrana yazdır. Bu kadar kodu incelemek çok zaman alır.

acemi
17/11/2003, 16:14
Sorunu, ufak parcaciklara bolup adim adim sonuclarini gorerek ilerle

webmeraklisi
18/11/2003, 15:19
sorunumu çözdüm sağolun