|
|
|
Yazan
|
Konu: Farklı bir mysql sorgusu (Okunma Sayısı 1075 defa)
|
salimbasar
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 2
|
Merhaba arkadaşlar
Sorum biraz karışık olabiliri
elimde şöyle bir table var veritabanında id // konuid // username 1 1 Kemal* 2 1 Cemal 3 1 ahmet 4 2 sibel* 5 2 pembe 6 2 kemal 7 3 kemal* 8 3 sibel 9 4 sibel* 10 4 kemal
Ben veri tabanın bir kullanıcının yazmış olduğu post sayısını almayı becerebiliryorum. sonuç kemal=4, sibel= 3, cemal=1, ahmet=1, pembe=1
Fakat ben bir kullanıcının açmış olduğu konu sayısını almayı becermiyorum. Şöyle bir sonuç elde etmek istiyorum. kemal=2 Sibel=2 Konuyu başlatanların açmış olduğu konu sayısı. Lütfen yardımcı olurmusunuz
|
|
|
|
|
Logged
|
|
|
|
mudkicker
Arif Ender
Admin
Offline
Mesaj Sayısı: 873
Mastered PHP
|
hmm, bunun için sanırım veritabanında bir de konular diye bir tablonuz olmalı. ve konuları başlatanı oraya eklmelisiniz veya mesajlar deyip bir konuya ait olan tüm mesajları alıp ilk atılan mesajın kullanıcısnı alabilirsiniz ki bu resmen avrupa'ya seyahat gibi birşey olur  veritabanınızı bilmeden birşey söylemek zor gibi geliyor.
|
|
|
|
|
Logged
|
|
|
|
salimbasar
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 2
|
yani sadece o yıldızlı olanları sayıp verecek bir sorgu oluşturmaıyormuyuz
|
|
|
|
|
Logged
|
|
|
|
Witkey
Ziyaretçi
|
umarım yardımcı olur <?php // Bağlantı ayarların vs.. $kullanici = "sibel"; $sorgu = mysql_query("Select * from kullanici WHERE ad = '$kullanici'"); $say = mysql_num_rows($sorgu); Echo $kullanici.": ".$say." Kadar mesaj göndermiştir"; ?>
|
|
|
|
|
Logged
|
|
|
|
requiem
PHP Stajyeri

Offline
Mesaj Sayısı: 194
oop rules the world
|
selam, şu şeklide yapabilirsin ama mysql açısından biraz külfetli, baştan söyleseydin * olanların başlık açan oldugunu çözüm bulunabilirdi. bunu mysql'den hepsini select ettigin döngünün içine koyarsan sanırım halledilebilir. <?php // $id veri tabanından gelen user_id olur böylece her birini farklı bi diziye kaydeder yazdırırken sorun çekmezsin $string = "ahmet*"; if (eregi('*', $string)) { $top_cnt[$id]++; } ?>
|
|
|
|
« Son Düzenleme: 19, 2005, 11:03:52 am Gönderen: requiem »
|
Logged
|
|
|
|
mudkicker
Arif Ender
Admin
Offline
Mesaj Sayısı: 873
Mastered PHP
|
konu id sini biliyorsanız, o konuya ait ilk mesajın kullanısını bulaqbilirisniz sanirim. sonucta burada bir bilinen gerekli gibi 
|
|
|
|
|
Logged
|
|
|
|
hakdogan
PHP Öğrencisi
Offline
Mesaj Sayısı: 64
Bilgininde zekatı vardır...
|
Arkadaşın tablo mimarisi yapmak istediği için uygun değil, sağ kulağı sol elle göstermek yerine mevcut tabloya yapacağı ekleme kalabalık sorgu yükünü ortadan kaldırır ve scripti daha işlevsel yapar. Benim önerim : ID alanı (atılan her mesajda benzersiz bir sayı) KonuID (açılan yeni konuda benzersiz bir sayı) Konu_username_ID (konuyu açan üyenin ID si yada adı) username (mesaj atan üye adı) $sorgu = mysql_query("select dıstınct Konu_username_ID from tabloadi where usarname ='$uye'"); $say = mysql_num_rows($sorgu);
echo $uye." İsimli üyenin açtığı toplam konu : ".$say;
Kolay gelsin...
|
|
|
|
|
Logged
|
Hüseyin Akdoğan
|
|
|
mudkicker
Arif Ender
Admin
Offline
Mesaj Sayısı: 873
Mastered PHP
|
tabii ki en iyisi bu ama coktan 1000 konu açılmışken diyelim bunu yaparsan baya sağlam bir update scripti çalıştırman gerekecek.
|
|
|
|
|
Logged
|
|
|
|
hakdogan
PHP Öğrencisi
Offline
Mesaj Sayısı: 64
Bilgininde zekatı vardır...
|
tabii ki en iyisi bu ama coktan 1000 konu açılmışken diyelim bunu yaparsan baya sağlam bir update scripti çalıştırman gerekecek.
Haklısınız ancak script her çalıştığında çalışacak ağır sorgulamalar yerine (dediğim gibi tablo mimarisi bunu gerektiriyor) bir seferde yapılacak bir update daha yerinde bir tercih olur gibime geliyor
|
|
|
|
|
Logged
|
Hüseyin Akdoğan
|
|
|
mudkicker
Arif Ender
Admin
Offline
Mesaj Sayısı: 873
Mastered PHP
|
o konuda bir sorun yok benim dediğim, bunu veri kaybı vs. gibi bir zarar görmeden yapabilecekler mi? dikkatli olmak lazım. yoksa onun optimize olacağı yadsınamaz.
|
|
|
|
|
Logged
|
|
|
|
Witkey
Ziyaretçi
|
<?php // Bağlantı ayarların vs.. $sorgu = mysql_query("Select kullanici from kullanici "); $dizi = mysql_fetch_array($sorgu); $say = array_count_values($dizi); // $say degiskeninden alabilirsin istedigin veriyi tablodaki gibi ;) sayar ?>
|
|
|
|
|
Logged
|
|
|
|
|
 |
|