Ö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