Php ortak arkadaş sistemi mantığı nasıl?
13
●2.976
- 21-08-2010, 19:09:39Üyeliği durdurulduşimdi tablo isimlerini ve alanlarını yazarsanız size ortak arkadaşları verecek sql cumlesini yazabilirizMuzo adlı üyeden alıntı: mesajı görüntüle
- 21-08-2010, 19:25:33İlginiz için çok teşekkürler öncelikle.D3LLy adlı üyeden alıntı: mesajı görüntüle
Uyeler Tablosunda
Id, kullanıcı adı ve diğer bilgiler var.
Arkadas Tablosunda
Kisi1 ve Kisi2 şeklinde arkadaş olan iki kişi tutuluyor. - 22-08-2010, 01:29:46Performans için tablonuzu uye INT(255), ark INT(255) yapıp ikisine de INDEX oluşturmalısınız. Web alanınızı baya bir kısıtlayacak olmasının yanında bence gözle görülür performans artışı sağlar. Sorgunuz da şöyle olur:
$gyu = $_GET['gyu']; // gys: giriş yapmış üye, 25 döndüğünü varsayalım $pbu = $_GET['pbu']; // pbu: profiline bakılan üye, 14 döndüğünü varsayalım mysql_query( "SELECT gyu.uye, pbu.uye, gyu.ark, pbu.ark FROM arklar AS gyu INNER JOIN arklar AS pbu ON (pbu.ark=gyu.ark AND pbu.uye='14') WHERE gyu.uye='25'" );
Denedim, sorunsuz çalışıyor bu. Tablo şöyle komple:
CREATE TABLE `arklar` ( `uye` int(255) NOT NULL, `ark` int(255) NOT NULL, KEY `uye` (`uye`), KEY `ark` (`ark`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Dumping data for table `arklar` -- INSERT INTO `arklar` VALUES (14, 14); INSERT INTO `arklar` VALUES (25, 14); INSERT INTO `arklar` VALUES (14, 15); INSERT INTO `arklar` VALUES (25, 15); INSERT INTO `arklar` VALUES (14, 8); INSERT INTO `arklar` VALUES (25, 8); INSERT INTO `arklar` VALUES (14, 18); INSERT INTO `arklar` VALUES (25, 18); INSERT INTO `arklar` VALUES (14, 17); INSERT INTO `arklar` VALUES (25, 17); INSERT INTO `arklar` VALUES (14, 24); INSERT INTO `arklar` VALUES (25, 44); INSERT INTO `arklar` VALUES (14, 64); INSERT INTO `arklar` VALUES (25, 47);