• 18-11-2009, 11:41:29
    #1
    merhabalar

    bir ayar dosyam var, bu dosyada form ile bazı bilgileri seçip db ye kaydediyorum. Bu bilgilerden bir tanesi kategori seçimi.
    Kategorileri db den çekip listeletiyorum ve seçtiğim kategori db ye kaydediliyor. Buraya kadar sorun yok.
    Tekrar ayar dosyama girip farklı bir alanda işlem yaptığımda, kategori alanı db ye kategorilerin ilk değeri olan "0" değerini gönderiyor.
    Bunu nasıl engellerim. Ben seçim yapmadığım sürece seçili olan değeri göndersin.

    echo "<select size=\"1\" name=\"catid\">";
    		$al = $db->sql_query("select catid, title from ".$prefix."_stories_cat where catid='$catid' ORDER BY title LIMIT 0,1");
    	    while (list($catid, $title)=$db->sql_fetchrow($al)) {
    			echo "<option selected>$title</option>";
    		}
    		
    		$al = $db->sql_query("select catid, title from ".$prefix."_stories_cat ORDER BY title");
    	    while (list($catid, $title)=$db->sql_fetchrow($al)) {
    			echo "<option value=\"$catid\">$title</option>";
    		}
    		echo "</select>";
  • 18-11-2009, 12:17:15
    #2
    echo "<select size=\"1\" name=\"catid\">"; 
            $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat where catid='$catid'"); 
            while (list($catid, $title)=$db->sql_fetchrow($al)) { 
                echo "<option value=\"$catid\">$title</option>"; 
            } 
             
            $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat WHERE catid<>$catid ORDER BY title"); 
            while (list($catid, $title)=$db->sql_fetchrow($al)) { 
                echo "<option value=\"$catid\">$title</option>"; 
            }
            echo "</select>";
    gerekli düzenlemeyi yaptım kodunda ilkinde selected yerine ilk olarak varolan kategorisini yazdırırsan o seçili gelir. ikinci döngün içinde sqlde yaptığım değişiklik varolan kategorinin yazılmamasını sağlar.denemedim ama muhtemelen çalışıyor.
    Tekrar düzenleme yaptım sqlin içinde kullandığın $catid değişkeninin adını daha farklı yap çünkü döngülerdede aynı değişkeni kullanıyosn bu yuzden 2.ci sorguda yanlış $catid sorguluycak.
  • 18-11-2009, 12:45:51
    #3
    Üyeliği durduruldu
    birde şu kodları yazarken çift tırnak değilde tek tırnak kullanırsanız hem çift tırnağa göre daha verim alırsınız hemde kod karışıklığına neden olmaz.
  • 18-11-2009, 15:22:38
    #4
    SpYCoD3r adlı üyeden alıntı: mesajı görüntüle
    echo "<select size=\"1\" name=\"catid\">"; 
            $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat where catid='$catid'"); 
            while (list($catid, $title)=$db->sql_fetchrow($al)) { 
                echo "<option value=\"$catid\">$title</option>"; 
            } 
             
            $al = $db->sql_query("select catid, title from ".$prefix."_stories_cat WHERE catid<>$catid ORDER BY title"); 
            while (list($catid, $title)=$db->sql_fetchrow($al)) { 
                echo "<option value=\"$catid\">$title</option>"; 
            }
            echo "</select>";
    gerekli düzenlemeyi yaptım kodunda ilkinde selected yerine ilk olarak varolan kategorisini yazdırırsan o seçili gelir. ikinci döngün içinde sqlde yaptığım değişiklik varolan kategorinin yazılmamasını sağlar.denemedim ama muhtemelen çalışıyor.
    Tekrar düzenleme yaptım sqlin içinde kullandığın $catid değişkeninin adını daha farklı yap çünkü döngülerdede aynı değişkeni kullanıyosn bu yuzden 2.ci sorguda yanlış $catid sorguluycak.
    bu seferde ikinci sorgudaki kategorileri listelemiyor
  • 18-11-2009, 15:27:24
    #5
    dediğim gibi sqller içinde kullandıgınız $catid değişkenine farklı bir isim verin ilk sqlde de onu kullanın.
  • 18-11-2009, 19:48:06
    #6
    SpYCoD3r adlı üyeden alıntı: mesajı görüntüle
    dediğim gibi sqller içinde kullandıgınız $catid değişkenine farklı bir isim verin ilk sqlde de onu kullanın.
    dediğini yapınca düzeldi

    bu arada bir şeyi yanlış bildiğimide öğrendim

    $secilikategori = $db->sql_query("select catid, title from ".$prefix."_stories_cat where catid='$catid'");
    	    while (list($xcatid, $xtitle)=$db->sql_fetchrow($secilikategori)) {
    			echo "<option value='$xcatid'>$xtitle</option>";
    		}
    list fonksiyonu içerisindeki değişkenlerin sorgudaki ile aynı olması gerektiğini zannediyordum. Sanırım sorgudaki sıraya göre list içerisindeki değişkenlere atıyor.

    çok teşekkür ederim gerçekten.


    Canon
    önerini dikkate aldım


    kolay gelsin
  • 18-11-2009, 23:51:01
    #7
    pardon yanlışlıkla oldu
    çok özür dilerim