12 Şubat 2010 Cuma

Mysql'de çok satırlı sorgular

Mysql konsolunda çok satırlı sorgular hazırlarken, uzun sorguların yazımı sıkıntı verebilir, ne de olsa tüm sorguyu tek satırda yazmanız gerekecektir. Bu sıkıntıdan kurtulmanın yolu, sorguyu bir editörde hazırladıktan sonra Mysql konsolunda yürütmek olabilir. Benzer şekilde Mysql çok satırlı sorgular için dahili vi editörünü sunuyor. Konsol kısmında iken \e; yazıp enter' a basarsanız size vi editörü açılacaktır. Aşağıda nasıl yapıldığının resmi var;



Burda da basit bir sorgu örneği;



Vi editöründen çıkarken:

Yazdığınız sorgunun yürütülmesini istiyorsanız;
:wq {enter}

Yazdığınız sorgunun yürütülmesini istemiyorsanız;
:q! {enter}

tuşlamanız yeterli.

9 Şubat 2010 Salı

PHP sayıyı yazıya çevirme

PHP kullanmaya başladım, yazdığım ilk ciddi kod parçasını sizlerle paylaşmak istiyorum. Bu kod parçası, verilen sayıyı yazıya çeviriyor. Fatura ve makbuzların alt kısımında gördüğümüz yalnız ikiyüzaltmışüç liradır. şeklindeki ifadeleri elde etmek için kullanılabilir.

Kod:

<?
function sayi2yazi($sayi) {
$birler = array("","bir","iki","üç","dört","beş","altı","yedi","sekiz",
"dokuz");
$onlar = array("","on","yirmi","otuz","kırk","elli","altmış","yetmiş",
"seksen","doksan");
$ustler= array("","bin","milyon","milyar","trilyon");

echo $sayi . " -> ";

$kalan = strlen($sayi) % 3;
if ($kalan != 0) $sayi = str_repeat("0", 3-$kalan) . $sayi;
$parcalar = str_split($sayi, 3);
$parca_adedi = sizeof($parcalar);

$sonuc= "";
for ($i = $parca_adedi; $i > 0; $i--) {

$p_yazi = "";
$parca = $parcalar[$i-1];

for ($j = 0; $j < strlen($parca); $j++) {
$bit = $parca[$j];
if ($bit != 0) {
switch ($j) {
case 0: {
if ($bit != 1) $p_yazi .= $birler[$bit];
$p_yazi .= "yüz";
break;
}
case 1: {
$p_yazi .= $onlar[$bit];
break;
}
case 2: {
$p_yazi .= $birler[$bit];
break;
}
}
}
}

if ($p_yazi=="bir" && $ustler[$parca_adedi-$i]=="bin")
$sonuc = $ustler[$parca_adedi - $i] . $sonuc;
else
$sonuc = $p_yazi . $ustler[$parca_adedi - $i] . $sonuc;

}
return $sonuc . "\n";
}

echo sayi2yazi(1);
echo sayi2yazi(101);
echo sayi2yazi(101101);
echo sayi2yazi(1001);
echo sayi2yazi(10010);
echo sayi2yazi(120230123);
echo sayi2yazi(712328);
echo sayi2yazi(42340738);
echo sayi2yazi(10101078);
echo sayi2yazi(23474854234234);
echo sayi2yazi(2347485423423);
echo sayi2yazi(72238);
?>

Ekran çıktısı:

mdpinar@mdpinar-desktop:~/php$ php sayi2yazi.php
1 -> bir
101 -> yüzbir
101101 -> yüzbirbinyüzbir
1001 -> binbir
10010 -> onbinon
120230123 -> yüzyirmimilyonikiyüzotuzbinyüzyirmiüç
712328 -> yediyüzonikibinüçyüzyirmisekiz
42340738 -> kırkikimilyonüçyüzkırkbinyediyüzotuzsekiz
10101078 -> onmilyonyüzbirbinyetmişsekiz
23474854234200 -> yirmiüçtrilyondörtyüzyetmişdörtmilyarsekizyüzellidörtmilyonikiyüzotuzdörtbinikiyüz
2347485423420 -> ikitrilyonüçyüzkırkyedimilyardörtyüzseksenbeşmilyondörtyüzyirmiüçbindörtyüzyirmi
72238 -> yetmişikibinikiyüzotuzsekiz