Lord, söyleyeceklerimi yanlış anlama ama neden biraz kodların dilinden anlamaya çalışmıyorsun?
Php ile arama bölümü yapmak istiyorsun elinde örnek bir kod var, biraz hatalı olsa da temel olarak bir kısmı doğru sayılır.
Arama sayfası için gerekli olan nedir? form aracılığıyla post metoduyla alınacak bilgi ve gelen bilgiyle veritabanında uygun kayıtları bulmak.
Arama sayfasına post metoduyla gelen veriyi almak için $_POST['inputadi']; kullanılır. Temel olarak güvenliği sağlamak için alinan değer sql sorgusuna girmeden önce
htmlspecialchars fonksiyonundan geçirilir. Sonra elindeki kodda bulunduğu şekilde sql sorgusu çalıştırılır.
PHP:
$sorgu = mysql_query("SELECT * FROM makale WHERE makale LIKE '%$ara%'");
//Türkçesi : makale tablosunda, makale sutununda $ara verisi geçen tüm satırları çek.
Sonrasında döngüyle sql sorgusundan gelen veriler listelenir ve o listelemedeki kodlar şunları söyler.
PHP:
while ($cek = mysql_fetch_array($sorgu)) {
//Döngüyü başlat
$ara = $_POST['ara'];
//Formdan gelen veriyi $ara değişkenine ata. Ama bunun yeri döngü içerisinde değil. sql sorgusunun üstüdür. Çünkü sql sorgusunda değişken kullanılmıştır. Burdaki yeri hatalıdır.
$leng = strlen($ara);
//strlen fonksiyonu ile $ara değişkeninin karakter sayısına öğren.
//http://tr2.php.net/strlen
$ara= strtolower( $ara);
//$ara değişkenindeki tüm harfleri küçült.
//http://tr2.php.net/strtolower
$makaleara = $cek[makale];
//tabloda makale sütununu çek.
$makaleara = strtolower( $makaleara );
//makale sütunundan çekilen değer $makaleara değişkenine atanmış. Üst satırlarda strtolower fonksiyonun Türkçesi açıklanmıştı.
$makale_ara = substr( $makaleara ,0, $leng );
//$makaleara değişkeninde olan veriyi, baştan başlayarak $ara değişkenin karakter sayısı miktarındaki kısmını kes.
//http://tr2.php.net/substr
$k = $i % 2;
$id = $cek[id];
$konu = $cek[konu];
$makale = $cek[makale];
$tarih = $cek[tarih];
//tablodaki sütunlar çekilip değişkenlere aktaralıyor.
if (strlen($cek['makale']) > 100) {
$makale = substr($cek['makale'], 0, 100)."...";
}
//Eğer makale sütunundaki değer 100 karakterden büyükse baştan başlayarak 100 karakterini kesip sonuna 3 nokta ekle.
else {
$makale = $cek[makale];
}
//Eğer 100 karakterden büyük değilse, aynı şekilde bırak.
if (strlen($cek['konu']) > 30) {
$konu = substr($cek['konu'], 0, 30)."...";
} else {
$konu = $cek[konu];
}
echo $konu;
}
Yukardaki kodların Türkçesi basit olarak böyledir. Eğer PHP ile çalışıp, web siteleri yapmak istiyorsak sürekli başka scriptleri kurup çalıştırmak veya çalışmadıklarında sürekli kopyala/yapıştır yapmayı beklersek daha çok bekleriz.
Aslında günümüzde web tamamiyle ticari ortama döndü. Çoğu kişi programlamayı öğrenmek, kendine birşeyler yapmak veya kendini geliştirmek istemez. Sadece free veya marez scriptlerle veya kopyala/yapıştır metoduyla kısacası nasıl olursa olsun web site sahibi olmak ister. Bu web sitesini de bir an önce pazarlayıp, yükseğe çıkıp, köşeyi dönmek ister. Ama eğer
gerçekten PHP ile web sitesi yapıyorum veya yapmak istiyorum diyorsak biraz hazır beklemekten vazgeçip, araştırma, deneme-yanılma yollarına başvurmalıyız. Örnek kodları, scriptleri inceleyip,
php.net'i ziyaret ederek kodların dilinden birazcık da olsa anlamaya gayret etmeliyiz.
Bu söylediklerim
kesinlikle Lord'a yönelik değildir. Geneli kapsamaktadır ve daha iyi yerlere gelebilmek için nacizane fikirlerimdir.