Soru - Cevap Bölümü
/ Kategori: Programlama
Arkadaşlar size sorunu şöyle anlatayım;
Şimdi benim bir yazı ekleme panelim var. Kişi oradan yazılarını ekliyor. Birde combobox var o da dinamik ( php komutlarıyla ) katagorileri listeliyor. Kişi katagorisini seçiyor ve yazı ekleniyor. Daha sonra başka biri yazıyı düzeltmek isteyince ( tam da benim sorunum bu işte ) combobox da diğer adamın seçtiği varsayılan olsun.
Combobox a katagorilerimi ekleyen php komutları;
$arat=mysql_query("select * from katagoriler");
while ($yaz=mysql_fetch_array($arat)){
$isim=$yaz['isim'];
$id=$yaz['id'];
echo "<option value=$id>$isim</option>";
}
Şimdiden teşekkürler. İyi günler, iyi çalışmalar...
Cevaplar
( Faydalı Cevapları Göster )
Kodlara baktım yanlız tam olarak yapısını anlayamadım. Benim verdiğim kodlara göre nasıl olabilir acaba :/ Ayrıca if yönetimi de düşündüm ama bağlantı kuramadım bir türlü.
Cevap için teşekkürler...
Merhaba,
Öncelikle, düzelti sayfasına giden linke örneğin http://benimhostum.com/duzenleme.php?id=yazarid şeklinde bir bilgi gönderme eki yapman gerekiyor. Burada yazarid bölümüne yazarın id numrası yazılacak.
Bu sayfada ise gönderilen bilgiyi alarak kodU şöyle düzenlemen mümkün:
//Aşağıdaki satırla gönderilen sayfadan sonuna eklediğin "?id=yazarid" bilgisini alınıyor
$yazarId = $_REQUEST['yazarid'];
$arat=mysql_query("select * from katagoriler");
while ($yaz=mysql_fetch_array($arat)){
$isim=$yaz['isim'];
$id=$yaz['id'];
$selectedStr = "";
//Gönderen sayfadan gelen yazar id ile veritabanındaki id kaşılaştırılıyor ve aynıysa option satırına selected parametresi ekleniyor.
if($id == $yazarid){
$selectedStr = " SELECTED ";
}
echo "<option value=$id $selectedStr>$isim</option>";
}
yanıt için teşekkürler yanlız çalıştıramadım;
<?php
$yaziid = $_GET["id"];
$arat=mysql_query("select * from katagoriler");
while ($yaz=mysql_fetch_array($arat)){
$isim=$yaz['isim'];
$id=$yaz['id'];
$selectedStr = "";
if($id == $yaziid){
$selectedStr = " SELECTED ";
}
echo "<option value=$id $selectedStr>$isim</option>";
}
?>
Kod hata vermedi yanlız çalışmadı da.
'id' değeri gönderici sayfadan bir form ile gönderiliyorsa $POST['id'] kullanılıyor. $GET['id'] ile get metodu kullanıyor. Gönderici sayfadaki kodunuz bilgiyi nasıl iletiyor onu kontrol eder misiniz. Ya da benim örneğimdeki $_REQUEST'i kullanıp denediniz mi? Bir de düzenleme sayfası açılıyorsa eğer onun koduna web browser'ın "kaynağı görüntüle" seçeneğiyle bakıp select box'a hangi değerler gelmiş onu kontrol edebilirsiniz. Hatayı bulmayı kolaylaştırır. Bir de option bloğunun başında <select> tagı olmalı. Yani kod söyle olsa daha doğru:
//Aşağıdaki satırla gönderilen sayfadan sonuna eklediğin "?id=yazarid" bilgisini alınıyor
$yazarId = $_REQUEST['yazarid'];
echo "<select id=\"yazar_id\" name=\"yazar_id\"> \n";
$arat=mysql_query("select * from katagoriler");
while ($yaz=mysql_fetch_array($arat)){
$isim=$yaz['isim'];
$id=$yaz['id'];
$selectedStr = "";
//Gönderen sayfadan gelen yazar id ile veritabanındaki id kaşılaştırılıyor ve aynıysa option satırına selected parametresi ekleniyor.
if($id == $yazarid){
$selectedStr = " SELECTED ";
}
echo "<option value=$id $selectedStr>$isim</option>\n";
}
echo "</select>\n";
Teşekkürler hocam. Ondan değil ben de sorun varmış. Yazı nın id si yerine katagori nin id isi ile karşılaştırınca oldu.
Herkese iyi günler, iyi çalışmalar...
Önemli değil kardeşim. Gerçi kendin çözmüşsün. Ben de dikkat etmemişim, oysa ki sorguda kategoriler tablosundan veri isteniyor :)
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 58 (50 kayıtlı, 8 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Blog Bölümü Blogevi.com'a Taşınıyor
Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...
7.500'üncü üyemiz Cem Koç!
Neler Yapılabilir?
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)









şöyle yapabilirsin. Misal daha önceden değiştirmek istediğin yazıyı
gibi yapabilirsin tabi ama bu kod yapına direkt uygulayabileceğin en kolay çözüm. Daha güzelleri de yok değil tabi.