[Linux-programlama] Re: sql sorgu

---------

[Linux-programlama] Re: sql sorgu

From: nsm <nesimiacarca_at_gmail.com>
Date: Tue, 4 Mar 2008 17:07:55 +0200
Message-ID: <174096cb0803040707i3732ffecv7a1b397e6c11af1e@mail.gmail.com>

Ömer BARLAS'in belirttiği yolda iyi onuda kullanabilirsiniz.

Bir döngü içerisinde tüm girdileri okuyorum blogid alıp
node_tags( $id ) isimli php fonksiyonunu çağırıyorum oda bana tags
dönderiyor bende gelen veriyi ekrana basıyorm.

function node_tags( $q, $id ){

    $sql = "SELECT t.name FROM node_tags nt, tags t ";
    $sql .= "WHERE nt.tid = t.id AND nt.nid = $id";
    $result = mysql_query($sql);
    $body .="tags:";
    while ( $row = mysql_fetch_array( $result ) ) {
        if ($q != null ) $body .=" <a
href='/$q/tag/$row[name]'>$row[name]</a> -";
        else $body .=" <a href='$q/tag/$row[name]'>$row[name]</a> -";
    }

    if (mysql_num_rows($result) != 0 ){
        //sondaki tire(-) iÅŸaretini kaldıralım.
        return substr( $body,0,-1 );
    }
    else
        return null;

}

04.03.2008 tarihinde Güyçmırat Amanmırat <guychmyrat_at_yahoo.com.tr> yazmış:
>
> Evet nsm dediği gibi daha iyi. Diğer türli güncellemede sorun çıkıyor.
>
>
>
> Nsm madem öyle yapı kullanıyorsunuz siz nasıl sorgu yapıyorsunuz? Yoksa
> stored procedure mı yazdınız?
>
>
>
> Proceduresuz olma ihtimali varmı ?
>
>
> ------------------------------
>
> *From:* linux-programlama-bounces_at_liste.linux.org.tr [mailto:
> linux-programlama-bounces_at_liste.linux.org.tr] *On Behalf Of *nsm
> *Sent:* Tuesday, March 04, 2008 4:15 PM
> *To:* linux-programlama_at_liste.linux.org.tr
> *Subject:* [Linux-programlama] Re: sql sorgu
>
>
>
> Sayın Ömer BARLAS demişsiniz ki
>
> >hem tagrelations tablosundan kurtulursun, hem de tag olayın daha derli
> toplu
> >olur.
>
> Yani şöyle oluyor:
> ***Detail | tags***
> Girdi1 | istanbul,abana,izmir
> Girdi2 | abana,izmir,sdfsdf
> Girdi3 | 123,abana
>
> peki yukarıdaki gibi adana yerine abana yazmışsak ve düzeltmek istersek
> başka problemler ortaya çıkacaktır değilmi :) tek tek her satırı güncellemek
> sıkıcı olsa gerek. Bence önceki tasarım daha iyi ben bizzat ona benzer bir
> yapı kullanıyorum zaten sitemde. (nesimia.com)
>
> 04.03.2008 tarihinde *Omer Barlas* <omer_at_serbestcagrisim.com> yazmış:
>
> Güyçmırat Amanmırat @ 03-03-2008 17:13:
>
> > Merhaba.
> > 3 tane tablom var.
> >
> > 1 Blog.
> >
> > BlogId BlogName BlogDetail
> > 3 deneme deneme detail
> >
> >
> > 2. tag
> >
> > tagId tagName
> > 5 istanbul
> > 8 deneme
> > 13 kod
> >
> >
> > 3. tagrelation
> >
> > tagId blogId
> > 5 3
> > 8 3
> > 13 3
>
>
> seçerken nasıl seçtirdiğinize bağlı olarak tavsiyem blog tablosuna
> BlogTags
> gibi bir kolon eklemeniz ve bu kolona tagleri , ile ayırarak sokmanız,
> mesela bir select yapın;
>
> <select name="tags[]" multi>
> <option value="5">Istanbul</option>
> <option value="8">deneme</option>
> <option value="13">kod</option>
> </select>
>
> bunu post ettikten sonra veriyi BlogTags'e sokmak için;
>
> implode(",",$_POST["tags"]);
>
> komutunu kullanın. DB'den geri çağırırken de daha hızlı bir kod ile
> çağırmak
> mümkün olur, bkz;
>
> $ga = mysql_query("SELECT * FROM Blog WHERE BlogId='3'");
> $blog_id = mysql_result($ga, 0, "BlogId");
> ....
> $blog_tags = mysql_result($ga, 0, "BlogTags");
>
> $get_tags = mysql_query("
> SELECT * FROM
> tag
> WHERE
> FIND_IN_SET(tagID,'".$blog_tags."'
> ");
>
> hem tagrelations tablosundan kurtulursun, hem de tag olayın daha derli
> toplu
> olur.
>
>
> --
> Omer Barlas
> omer_at_serbestcagrisim.com
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
>
> --
> Nesimi ACARCA
> www.nesimia.com
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>

-- 
Nesimi ACARCA
www.nesimia.com

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 04 Mar 2008 - 16:28:03 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.