İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Kategorilendirme

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Selam,
Veritabanını su sekilde olusturdum:

PHP:
CREATE TABLE `yerler` (
  `id` int(11) NOT lisanssız auto_increment,
  `yer_adi` text NOT lisanssız,
  `alt_id` int(11) NOT lisanssız,
  PRIMARY KEY  (`id`),
  KEY `alt_id` (`alt_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;


Veri girisi ise su sekilde:

PHP:
INSERT INTO `yerler` VALUES (1, 'Adana',0);
INSERT INTO `yerler` VALUES (2, 'Antalya',0);
INSERT INTO `yerler` VALUES (3, 'Alanya',2);
INSERT INTO `yerler` VALUES (4, 'Kemer',2);
INSERT INTO `yerler` VALUES (5, 'Ankara',0);
INSERT INTO `yerler` VALUES (6, 'Side',2);


diyelim ki Antalya (id=2) sehrinin ilçelerinden bir tanesine Alanya ekleyeceğim, Alanya'yı eklerken alt_id'yi 2 yapıyorum ve bu ilçenin bağlı olduğu ilin Antalya olduğu belli oluyor. Aynı sekilde sehir eklerken de, alt_id'yi 0 olarak bırakıyorum il olduğu anlasılsın diye. Veri girisi yaparken ise formda listelemenin su sekilde olması için nasıl bir kod kullanmalıyım?

Adana
Antalya
>>Alanya
>>Kemer
>>Side
Ankara

Ek bilgi:Asağıdaki kod yerler tablosundaki bütün verileri listeletiyor, amacım ilçelerin, bağlı olduğu ilin altına gelmesi.

PHP:
<?
echo "<select name=yer>";
$sc=mysql_query("select * from yerler");
while ($cek=mysql_fetch_array($sc)):
echo "<option value=\"$cek[id]\">$cek[yer_adi]</option>";
endwhile;
echo "</select>";
?>
 

hakimi

0
İyinet Üyesi
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaction score
0
sen daha iyi bilirsin ama ploop saırım bunun için çift select box ve jump menu kullanman lazım. arabam.com daki gibi. yani antalyayı seçtinmi sayfa refreshleyip alttaki select boxa ilçelerini girecek. jada ajaxla olur diye tahmin ediyorum(aynı işlev). Başka yolu varsa bende öğrenmek isterim :)
Birde ikinci select box a If (alt_id != 0) { while kontrollü bir select box alt_id için } koyarsın
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Sadece iki basamak ise aşağıdaki şekilde yapılır. Select menu'de aynı mantık sadece düz echo yerine <option> içinde echolayacaksın, analarını option group altlarını option yaparsın mesela daha bile güzel olur.

Eğer sonsuz basamak varsa fonksiyon yazıp iç içe çağırman lazım.

PHP:
$q = mysql_query("SELECT id,yer_adi FROM yerler WHERE alt_id='0' ORDER BY id ASC");

   while ($a = mysql_fetch_array($q)) {
   echo $a[yer_adi].'<br>';

   $q2 = mysql_query("SELECT id,  yer_adi FROM yerler WHERE alt_id='$a[id]'");
 
      if (mysql_num_rows($q2) != "0") {
      
          while ($a2 = mysql_fetch_array($q2)) {
          echo '- '.$a2[yer_adi].'<br>';
          }

      }

  }
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Çok uykum geldi, yatayım yarın öğlen bakıp yardım gerekirse yazarım buraya :) Tesekkurler.
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Angelo tam istediğim gibi olmus, çok tesekkur ederim.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst