< Php Makaleleri - Php Makaleleri, Php Tasarım, Php testleri, Hazır tasarımlar, Php Dersleri, Bedava hazır tasarımlar, hazır şablonlar, php kodları - Blogcu





Php ile Arama motoru yapmak

Asagidaki kod parcasi mysql veritabaninda nasil arama islemi yapabileceginizi anlatmaktadir.

  1. < html>
  2.   < head>
  3.   < title>PHP ile veritabaninda Arama Ornegi - turk-php.com
  4.   < /head>
  5.   < body>
  6.  
  7.   < ?php
  8.  
  9.   $string=$_POST['string'];
  10.  
  11.   echo $string;
  12.  
  13.   $baglanti=mysql_connect("localhost","root","");
  14.  
  15.   mysql_select_db("veritabani_adi");
  16.  
  17.   $SQL="SELECT id FROM edergi WHERE makale_keywords like '%$string%' or makale_ad like
  18.  
  19.   '%$string%' or makale_yazar like '%$string%'";
  20.  
  21.   $sorgu=mysql_query($SQL) ;
  22.  
  23.   if (!$sorgu)
  24.  
  25.   {
  26.  
  27.   echo "

    Hata Olustu: " . mysql_error() . "

    ");  exit();
  28.  
  29.   }
  30.  
  31.   $arguman=0;
  32.  
  33.   $adet=0;
  34.  
  35.   while($sira=mysql_fetch_array($sorgu))
  36.  
  37.   {
  38.  
  39.   $sonuc[$arguman]=$sira["id"];
  40.  
  41.   $arguman++;
  42.  
  43.  
  44.   }
  45.  
  46.   if($string{0}!='"')
  47.  
  48.   {
  49.  
  50.   $pieces=explode(" ",$string);
  51.  
  52.   for($i=0;$i<(count($pieces)-1);$i++)
  53.  
  54.   {
  55.  
  56.   $SQL="SELECT id FROM edergi WHERE makale_keywords like '%$pieces[$i]%'or
  57.  
  58.   makale_yazar like '%$pieces[$i]%' or makale_ad like '%$pieces[$i]%' ";
  59.  
  60.   $sorgu=mysql_query($SQL) ;
  61.  
  62.   if (!$sorgu)
  63.  
  64.   {  echo("

    Hata Olustu:  " . mysql_error() . "

    ")exit();}
  65.  
  66.   $i=0;
  67.  
  68.   echo count($sonuc);
  69.  
  70.  
  71.   while($sira=mysql_fetch_array($sorgu))
  72.  
  73.   {
  74.  
  75.   while($i<(count($sonuc)-1))
  76.  
  77.   {
  78.  
  79.   if($sira["id"]!=$sonuc[$i])
  80.  
  81.   $sonuc[$arguman]=$sira["id"];
  82.  
  83.   $arguman++;
  84.  
  85.   $i++;
  86.  
  87.   }
  88.  
  89.   }
  90.  
  91.   }
  92.  
  93.   }
  94.  
  95.   for($i=0;$i<count($sonuc);$i++)
  96.  
  97.   {
  98.  
  99.   $SQL="SELECT * FROM edergi WHERE id='$sonuc[$i]'";
  100.  
  101.   $sorgu=mysql_query($SQL) ;
  102.  
  103.   if (!$sorgu)
  104.  
  105.   {  echo("

    Hata Olustu:  " . mysql_error() . "

    ")exit();}
  106.  
  107.   while($sira=mysql_fetch_array($sorgu))
  108.  
  109.   {
  110.  
  111.   echo $sira["makale_ad"];
  112.  
  113.   ? >
  114.  
  115.   < BR>
  116.  
  117.   < ?php
  118.  
  119.   }
  120.  
  121.   }
  122.  
  123.   ? >
  124.  
  125.   < /body>
  126.  
  127.   < /html>

Php ile Kategorileme

MySQL de kategorileme adında bir veritabanı yaratın ve bu sorguyu çalıştırın.
 
 
CREATE TABLE `kategoriler` (
  `kat_id` int(11) NOT NULL auto_increment,
  `kat_baslik` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`kat_id`)
) ENGINE=MyISAM;


INSERT INTO `kategoriler` VALUES (1, 'PHP');
INSERT INTO `kategoriler` VALUES (2, 'ASP');
INSERT INTO `kategoriler` VALUES (3, 'HTML');
 
CREATE TABLE `makaleler` (
 `makale_id` int(11) NOT NULL auto_increment,
 `makale_baslik` varchar(150) NOT NULL default '',
 `kat_id` varchar(150) NOT NULL default '',
 `makale_metni` text NOT NULL,
 PRIMARY KEY (`makale_id`)
) ENGINE=MyISAM;
 
INSERT INTO `makaleler` VALUES (1, 'PHP de fonksiyonlar', '1', 'PHP de fonksiyonlar makalesi');
INSERT INTO `makaleler` VALUES (2, 'ASP de server nesneleri', '2', 'ASP de server nesneleri makalesi');
INSERT INTO `makaleler` VALUES (3, 'HTML de link vermek', '3', 'HTML de link vermek makalesi');
 
 
Şimdi sorgumuzda ne yaptık onu bir anlatalım.Öncelikle kategoriler adında bir tablo ve kat_id ( kategorinin id numarası ) , kat_baslik ( kategorinin adı ) adında iki field (alan) oluşturduk.Sonra örnek olması açısından 3 tane kategori ekledim.(PHP,ASP,HTML)
 
Diğeri ise makaleler tablomuz.Bu tabloda ise makale_id ( makalenin id numarası), makale_baslik ( makalenin adı ), kat_id ( makalenin olduğu kategori id numarasının tutulacağı alan ), makale_metni ( makalenin metni ).Ve yine örnek olarak 3 ayrı kategoriye 3 tane makale ekledim.
 
Kodlarımızı yazmaya başlayalım.Bir veritabanı bağlantısı oluşturalım.
 
Ayarlar.php olarak kaydedin.
 


******** db_baglanti()
{
  
$db_host = "localhost";
  
$db_kullanici = "root";   // Db kullanıcı adınız
  
$db_sifre = "";           // Db şifreniz
  
$db_adi = "kategorileme";       // Db adınız

  
@$baglanti = mysql_connect($db_host,$db_kullanici,$db_sifre);
  @
mysql_select_db($db_adi,$baglanti);
  if (
mysql_errno())
  {
    echo
'Veritabanına bağlanılamıyor ...';
    exit;
  }
}
?>
 
Ayarlar.php de bir db bağlantısı fonksiyonu oluşturduk.(Bunu kullanacağımız sayfalarda kolaylık olması açısından yaptık.)
Db bağlantımızı oluşturduğumuza göre şimdi kategorilerimizi ekrana yazdıralım.
 
Kategoriler.php olarak kaydedin.Gerekli açıklamaları kod içinde belirttim.
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// Bağlantıyı oluştur.
db_baglanti();

// kat_id, kat_baslik alanlarını kategoriler tablosundan seç ve kat_id e göre diz.
$sorgu = mysql_query("SELECT kat_id, kat_baslik FROM kategoriler ORDER BY kat_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
". $yaz['kat_id'] . "&kategori=" . $yaz['kat_baslik'] .">" . $yaz['kat_baslik'] . "
"
;
}
?>
 
Veritabanında olan kategorileri listeledik.Bu sayfanın çıktısı şu şekilde olmalıdır.
Şimdi ise bir kategoriye girdiğimizde makalelerin başlıklarını yazdıralım.
Katgoster.php olarak kaydedin.Gerekli açıklamalar kod içinde.
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den kategorinin id numarasını alıyoruz.
@$kat_id = $_GET['kat_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id ve makale_baslik alanlarını makaleler tablosundan seç ve url üzerinden gelen kat_id i tabloda olan kat_id e eşitle.Bu da bize hangi kategori ise bize o kategorinin makalelerini listeliyor.
*/
$sorgu = mysql_query("SELECT makale_id, makale_baslik FROM makaleler WHERE kat_id = '" . $kat_id . "' ORDER BY makale_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
'. $yaz['makale_id'] .'"> '.$yaz['makale_baslik'] .'
'
;
}
?>
 
Bu sayfanın çıktısı şu şekilde olmalıdır.Burda PHP kategorisine girdiysek PHP kategorisindeki makalelerin başlıklarını yazdıracağız.( Örnek: PHP de fonksiyonlar.) O zaman çıktı şu şekilde olacaktır.
Ve son olarak da makaleoku.php sayfamız;
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den makalenin id numarasını alıyoruz.
@$makale_id = $_GET['makale_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id, makale_baslik, makale_metni alanlarını makaleler tablosundan seç.Ve url üzerinden gelen makale_id i tabloda olan makale_id e eşitle.Bu da bize hangi makaleden geldiysek bize onun makale_metinini göstermemizi sağlar.  */
$sorgu = mysql_query("SELECT makale_id, makale_baslik, makale_metni FROM makaleler WHERE makale_id = '" . $makale_id . "'");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
$yaz['makale_metni'];
}
?>
 
Bu sayfanın çıktısı ise PHP de fonksiyonlar makalesinin metini yani ;
ALINTIDIR

İF yapısı

İF kelimesi İngilizce'de "Eğer" anlamına gelmektedir. PHP'de ise bundan farklı bir görev üstlenmemektedir. Yani koşullu cümleleri oluşturabilmek için if değimini kullanırız. Hemen bir örneğe geçelim.


< ? php
$yazi1="yazi1";
$yazi2="yazi";

if($yazi1=="yazi1")
{ echo "yazi1 değişkeni yazi1'e eşit oluduğu için bu metni görebiliyorsun"; }

if($yazi2=="yazi2")
{ echo "yazi2=değişkeni örneğimizde yazi2'ye eşit değil bunun için bu metni sayfada göremeyeceksin";}
? >

Evet, gördüğünüz gibi $yazi1 değişkeni yazi1 'e eşitse sayfaya yazımızı yazdıracak değilse yazdırmayacak (yazi2'de görüldüğü gibi) . Bu çok basit bir örnekti. Diğer makalelerimizde daha ayrıntılı şekilde if değimini görecek ve örnekler üzerinde daha iyi inceleme fırsatı bulacaksınız.

Yazan:Gurur Polat

Form'dan Bilgi Alma

 Bir çok sitede görmüşsünüzdür bu formları. Çeşitli formlar vardır sitelerde. Örneğin; iletişim, üyelik, yorum ekleme gibi. Şimdi bunların nasıl yapıldığını inceleyeceğiz ve basit bir iletişim formu yapacağız.

Form sayfaları genellikle "text" kısımlarından ve butonlardan oluşur. Formda yazılan yazılar bir değişkene atanır ve bunlar veritabanına kayıt edilir veya bir eposta adresine gönderilir. Yani bilgilerin kullanım yönü çeşitlidir. Biz daha acemi olduğumuzu varsayarak, bilgileri sayfaya yazdıracağız. Şimdi basit bir iletişim formu yapalım ve bu işin mantığını örneğimizle birlikte anlayalım.

İlk önce işe ziyaretçimizden bilgilerini alacağımız form sayfasını oluşturarak başlıyoruz. Ben form.html isminde bir dosya oluşturdum. Form kısmında php kodu kullanmayacağım için bu dosyayı html yaptım. Kullanıcıdan ismini, epostasını ve yorumunu alacağım bunun için aşağıdaki kodları kullandım.


< head >
< meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"  />
< title >Form< /title >
< /head >

< body >
< form name="form1" method="post" action="gonder.php" >
  İsminiz:
 
  < input name="isim" type="text" id="isim" >
  < /label >
  < br>
  < br>
  E-Postanız:
  < label>
  < input name="eposta" type="text" id="eposta">
  < /label>
 

  < br>
  Mesajınız:
  < label>
  < textarea name="mesaj" id="mesaj">
  < /label>
  < br>
 

  < label>
  < input name="postala" type="submit" id="postala" value="Gönder">
  < /label>
< /form>

< /body>
< /html>

Hemen ardından bilgileri alınacağı ve sayfaya yazdırılacağı gonder.php dosyasını oluşturuyorum.
Bu sayfada php kodu kullanacağımız için dosyayı php olarak kaydediyoruz.
Hemen gonder.php dosyasının kodlarına bakalım.


< ? php
$isim=$_POST["isim"];
$eposta=$_POST["eposta"];
$mesaj=$_POST["mesaj"];

echo "< b>İsminiz:< /b> $isim < br> < b>Epostanız:< /b> $eposta < br> < b>Mesajınız:< /b> $mesaj";
? >


Evet... Yukarıdaki kodda formdan gelen bütün bilgileri bir değişkene atadık sonra da bu bilgileri echo ile sayfaya yazdırdık.Geliştirmek size kalmış. Daha sonraki yazılarımızda PHP ile formdan gelen bilgileri veritabanına kayıt edeceğiz ;)

İyi çalışmalar

Yazan: Gurur Polat


Php Dilinin Yapısı

PHP, HTML gömülü bir dildir. Yani aynı dosya içinde hem HTML, hem de PHP kodu kullanılabilmektedir. Kod içinde HTML'den PHP'ye geçmek için bazı ayıraçlar kullanılması gerekir. Örneğin:


< TABLE SIZE="500" >
< TR >
< TD >< ? Buraya PHP kodu yazılacak ?> < TD >
...
>

HTML taglari içinde de PHP kullanmak için şu metod seçilmeli:

< TABLE SIZE="< ? php Buraha PHP kodu yazılacak ? >" ...

Sayfaya Yazı Yazdırma:

< ? php echo"Merhaba Uzaylı"; ? >

Bu kodu tarayıcımız bize: 'Merhaba Uzaylı' şeklinde gösterecektir.

Php'ye Giriş

Php yorumlayıcısı ile kullanılan bir kodlama dilidir. Bu yorumlayıcı, html kodları arasındaki php kodlarını işleyerek sunucuya gönderir. Sunucu bunu HTML formatında çıkartıp ziyaretçiye bu şekilde gösterir. Yani ziyaretçilerin php kodlarını görmesi olanaksızdır.