Çift veya Birden Fazla Kayıtları Düzenleme, Silme

Böyle bir tablomuz olduğunu varsayalım

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ad` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `test` (`ad`) VALUES ('veli'),('ali'),('veli'),('ali'),('veli'),('ali');

Tekrar eden tüm verileri silmek için (Çiftten fazla var ise tercih edilir)
(Not:En son 1 tane bırakılır)

DELETE t1 FROM test t1, test t WHERE t1.id < t.id AND t1.ad = t.ad

Tekrar eden en son eklenen kaydı silme(Genelde çift kayıtlar için)(Son ekleneni silerek)
(Not:3 tane aynı veri var ise 2 tane kalır)
(Not:2 tane aynı veri var ise 1 tane kalır)
(Not:1 tane aynı veri var ise yine 1 tane kalır)
(Yani sürekli tekrarlanırsa 1’er 1’er silerek üstteki yaptığımız işleme ulaşılmış olur)

DELETE  
  FROM test 
    WHERE exists (  
      select * from  
        (select MAX(p.id) ciftid,count(*) 
          FROM test as p  
            GROUP BY p.ad 
              HAVING count(*)>1 
        ) as cift 
        WHERE cift.ciftid=test.id  
    )

Çıktısı

+------+
|  ad  |
+------+
| ali  |
| veli |
+------+

 

Bootstrap ve PureCss ile ModalBox

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Raleway:200">
<!--[if lte IE 8]>
    <link rel="stylesheet" href="http://purecss.io/css/main-grid-old-ie.css">
    <link rel="stylesheet" href="http://purecss.io/css/bootstrap/modal.css">
    <link rel="stylesheet" href="http://purecss.io/css/rainbow/baby-blue.css">
<![endif]-->
<!--[if gt IE 8]><!-->
<link rel="stylesheet" href="http://purecss.io/css/main-grid.css">
<link rel="stylesheet" href="http://purecss.io/css/main.css">
<link rel="stylesheet" href="http://purecss.io/css/bootstrap/modal.css">
<link rel="stylesheet" href="http://purecss.io/css/rainbow/baby-blue.css">
<!--<![endif]-->
<!--[if lt IE 9]>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div id="main">
	<div class="content">
		<p>
			<a href="#myModal" role="button" class="pure-button-primary pure-button" data-toggle="modal">
			Aç </a>
		</p>
		<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
			<div class="modal-header">
				<h3 id="myModalLabel">Başlık</h3>
			</div>
			<div class="modal-body">
				<form class="pure-form pure-form-stacked">
					<label for="email">Email</label>
					<input id="email" type="text" placeholder="Email">
					<label for="state">Cinsiyet</label>
					<select id="state">
						<option>E</option>
						<option>F</option>
					</select>
					<label class="pure-checkbox">
					<input type="checkbox"> Hatırla </label>
				</form>
			</div>
			<div class="modal-footer">
				<button class="pure-button" data-dismiss="modal" aria-hidden="true">Kapat</button>
				<button class="pure-button pure-button-primary">Gönder</button>
			</div>
		</div>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
		<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
	</div>
</div>
</body>
</html>

Demo için tıklayınız

İçerik Haritasi

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS3 Responsive İçerik Haritasi (BreadCrumb)(Bootsrap veya Materialize Grid Uyumlu)</title>
<style type="text/css">
body {
    margin: 0;
    padding: 0;
    width: 100%;
}
#icerikharitasi {
    text-align: center;
    border-spacing: 0px;
    border-collapse: separate;
    width: 100%;
}
#icerikharitasi tr td {
    display: inline-block;
    width: 33%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    position: relative;
    background: #3498db;
    text-align: center;
    font-size: 20px;
    text-decoration: none;
    color: #fff;
    padding: 30px;
}
@media (max-width: 767px) {
    #icerikharitasi tr td {
        display: block;
        width: 100%;
    }
}
#icerikharitasi tr td:nth-child(1) {
    background-color: rgba(224, 34, 34, 1);
}
#icerikharitasi tr td:nth-child(2) {
    background-color: rgba(124, 133, 142, 1);
}
#icerikharitasi tr td:nth-child(3) {
    background-color: rgba(104, 114, 124, 1);
}
#icerikharitasi tr td:nth-child(1):hover {
    background-color: rgba(194, 34, 34, 1);
}
#icerikharitasi tr td:nth-child(2):hover {
    background-color: rgba(120, 120, 120, 1);
}
#icerikharitasi tr td:nth-child(3):hover {
    background-color: rgba(100, 100, 100, 1);
}
@media (min-width: 768px) {
    #icerikharitasi tr td:after {
        content: "";
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-left: 10px solid rgba(224, 34, 34, 1);
        position: absolute;
        right: -10px;
        top: 40%;
        z-index: 1;
    }
    #icerikharitasi tr td:last-child:after {
        display: none;
    }
    #icerikharitasi tr td:nth-child(1):after {
        border-left: 10px solid rgba(224, 34, 34, 1);
    }
    #icerikharitasi tr td:nth-child(2):after {
        border-left: 10px solid rgba(124, 133, 142, 1);
    }
    #icerikharitasi tr td:nth-child(3):after {
        border-left: 10px solid rgba(104, 114, 124, 1);
    }
    #icerikharitasi tr td:nth-child(1):hover:after {
        border-left: 10px solid rgba(194, 34, 34, 1);
        -webkit-background-clip: padding-box;
        background-clip: padding-box;
    }
    #icerikharitasi tr td:nth-child(2):hover:after {
        border-left: 10px solid rgba(120, 120, 120, 1);
        -webkit-background-clip: padding-box;
        background-clip: padding-box;
    }
    #icerikharitasi tr td:nth-child(3):hover:after {
        border-left: 10px solid rgba(100, 100, 100, 1);
        -webkit-background-clip: padding-box;
        background-clip: padding-box;
    }
}
#icerikharitasi tr td a {
    color: #fff;
    text-decoration: none;
}
#icerikharitasi tr td:hover a {
    color: #fff;
    text-decoration: none;
    opacity: 0.8;
}
</style>
</head>
<body>
<table id="icerikharitasi">
	<tr>
		<td><a href="#1">İçerik 1</a></td>
		<td><a href="#2">İçerik 2</a></td>
		<td><a href="#3">İçerik 3</a></td>
	</tr>
</table>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
function resicerik() {
    var ih1 = "#icerikharitasi tr td:nth-child(1)";
    var ih2 = "#icerikharitasi tr td:nth-child(2)";
    var ih3 = "#icerikharitasi tr td:nth-child(3)";
    $(ih1).css('height', 'auto');
    $(ih2).css('height', 'auto');
    $(ih3).css('height', 'auto');
    var i1 = $(ih1).height();
    var i2 = $(ih2).height();
    var i3 = $(ih3).height();
    if (i3 > i2) {
        i = i3
    } else if (i3 === i2) {
        i = i2
    } else if (i2 > i1) {
        i = i2
    } else if (i2 === i1) {
        i = i1
    } else {
        i = i1
    }
    $("#icerikharitasi tr td").height(i);
}
$(document).ready(function() {
    $(window).resize(function() {
        if ($(window).width() > 767) {
            resicerik();
        }else{
            var ih1 = "#icerikharitasi tr td:nth-child(1)";
            var ih2 = "#icerikharitasi tr td:nth-child(2)";
            var ih3 = "#icerikharitasi tr td:nth-child(3)";
            $(ih1).css('height', 'auto');
            $(ih2).css('height', 'auto');
            $(ih3).css('height', 'auto');
        }
    });
});
</script>
</body>
</html>

Demo için Tıklayınız

Form Üzerinden Doğum Günü İşlemleri

<?php
function zaman($deger){
	$z=array();
	if(version_compare(phpversion(),'5.2.0','>=')){
		$zaman = new DateTime($deger);
		$zaman->setTimezone(new DateTimeZone('Europe/Istanbul'));
		$z["yil"]=$zaman->format('Y');
		$z["ay"]=$zaman->format('m');
		$z["gun"]=$zaman->format('d');
		$z["tam"]=$zaman->format('Y\-m\-d');
		$z["damga"]=$zaman->getTimestamp();
		
	}else{
		$sifirla = date_default_timezone_get();
		date_default_timezone_set('Europe/Istanbul');
		$damga=strtotime($deger);
		date_default_timezone_set($sifirla);
		$z["yil"]=date('Y',$damga);
		$z["ay"]=date('m',$damga);
		$z["gun"]=date('d',$damga);
		$z["tam"]=date('Y\-m\-d',$damga);
		$z["damga"]=$damga;
		
	}
	return $z;
}
function dogumTarihi($kacyilonce,$ad=null,$kimlik=null,$sinif=null){
	$once=(date("Y",(time()))-$kacyilonce)."-".date("m-d",(time()));
	$simdi=date("Y-m-d",time());
	return '<input name="'.$ad.'" class="'.$sinif.'" id="'.$kimlik.'"'.
		' max="'.$simdi.'" min="'.$once.'" type="date" />';
}
?>
<form action="" method="post">
<?php echo dogumTarihi(90,"ddlBirthYear","ddlDogumYil"); ?>
<input type="submit" value="Gönder"/>
</form>
<?php

if(isset($_POST["ddlBirthYear"])){
	$zaman=zaman($_POST["ddlBirthYear"])
	print_r($zaman);
	//echo $zaman["tam"];
}
?>

Çıktısı

Array ( [yil] => 2015 [ay] => 03 [gun] => 12 [tam] => 2015-03-12 [damga] => 1426114800 )

 

Tüm Mysql Sorgularını Kayıt Etmek

Ne işe yarar?

Mesela anasayfanızın oluşturulması için bir sürü sorgunun gerçekleşmesi gerekebilir. Anasayfanızı açtıkran sonra oluşan tüm sorguları bu şekilde inceleyebilirsiniz. Belki de gereksiz ya da düzensiz sorgularınızı görüp daha kaliteli bir yapı hazırlamanıza yardımcı olabilir.

Nasıl Yapılır?

1. Apache üzerinden my.ini dosyasını aratıp not defteri ile açınız.

2. [mysqld]  yazan satırı bulun.

3. Hemen alt satırına aşağıdakileri yazın

Xampp için

general_log=1
general_log_file="/xampp/htdocs/query.log"

Easyphp için

general_log=1
general_log_file="${path}/data/localweb/query.log"

4.Dosyayı kaydettikten sonra apache’yi yeniden başlatın.

5.Bir mysql sorgusu gerçekleştirip local sitenizin ana dizininde bulunan query.log dosyasını kontrol ediniz.

Benzer Kelime Bulma

<?php 
function bumudur($kelime,$hafiza){
 $oran=array();
 foreach ($hafiza as $h) {
 $benzer = levenshtein($kelime, $h);
 array_push($oran,$benzer);
 }
 foreach(array_keys($oran, min($oran)) as $sira){
 similar_text($hafiza[$sira], $kelime, $benzerlikorani); 
 return array($hafiza[$sira],round($benzerlikorani));
 } 
}

$kelime = 'kaağğıt';
$hafiza = array('taş','makas','kağıt','saat','telefon');
$sonuc = bumudur($kelime,$hafiza);
echo "Bunu mu demek istediniz ".$sonuc[0].PHP_EOL;
echo "Benzerlik oranı %".$sonuc[1]; 
?>

 

Kelimeleri veya Cümleleri Harflere Bölmek

<?php
$mail = "ulusanyazilim@gmail.com";

$bol1 = str_split($mail);
$bol2 = str_split($mail, 5);

print_r($bol1);
print_r($bol2);
?>

Çıktısı

Array
(
    [0] => u
    [1] => l
    [2] => u
    [3] => s
    [4] => a
    [5] => n
    [6] => y
    [7] => a
    [8] => z
    [9] => i
    [10] => l
    [11] => i
    [12] => m
    [13] => @
    [14] => g
    [15] => m
    [16] => a
    [17] => i
    [18] => l
    [19] => .
    [20] => c
    [21] => o
    [22] => m
)
Array
(
    [0] => ulusa
    [1] => nyazi
    [2] => lim@g
    [3] => mail.
    [4] => com
)

 

İki Dizi Arasında Anahtar ve Değer Kuralı Belirleyerek Fark Bulma

Not:

1-) Fonksiyon içinde kural sorgularken değerleri aynıysa “==” , hem değerleri hem anahtarları aynıysa “===” kullanılır.

2-) array_diff_uassoc anahtar ve değer farkını birlikte işlerken, array_udiff sadece değer farkını işler.

Aşağıda anahtar isimleri adi,yas,soyadi olan değer örnekleri işlenmiştir.

array_diff_uassoc

<?php
$dizi1 = array("adi" => "Mehmet","yas" => "30", "soyadi" => "Ulusan");
$dizi2 = array("adi" => "Mehmet", "soyadi" => "Ulutan","30");
$cikti = array_diff_uassoc($dizi1, $dizi2, function ($d1,$d2){
 if($d1 === $d2){ /* hem değerleri hem anahtarları aynı olursa*/ 
 return false; /*aynı olanları yazdırmasın istiyoruz*/ 
 }else{ 
 return true; /* kurala göre farklı olanları döndürüyoruz */ 
 } 
});

print_r($cikti);

?>

Çıktısı

Array( [yas] => 30 [soyadi] => Ulusan )

Yukarıki Çıktının Sebebi
1.Diger dizide yas anahtarı yok idi
2.Diğer dizide soyadinin değeri farklı idi

array_udiff

<?php
$dizi1 = array("adi" => "Mehmet","yas" => "30", "soyadi" => "Ulusan");
$dizi2 = array("adi" => "Mehmet", "soyadi" => "Ulutan","30");
$cikti = array_udiff($dizi1, $dizi2, function ($d1,$d2){
 if($d1 === $d2){ /* hem değerleri hem anahtarları aynı olursa*/ 
 return false; /*aynı olanları yazdırmasın istiyoruz*/ 
 }else{ 
 return true; /* kurala göre farklı olanları döndürüyoruz */ 
 } 
});

print_r($cikti);

?>

Çıktısı

Array([soyadi] => Ulusan)

Yukarıki Çıktının Sebebi
1.Diğer dizide soyadinin değeri farklı idi
2.Diğer dizide yas anahtarı yok idi ama bu fonksiyon anahtara değil değere baktığı için 30lar eşleşip yok oldu.