Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
05, 2008, 10:32:46 pm
42717 Mesaj 8081 Konu Gönderen: 17909 Üye
Son üye: bytasarimci
Turk-Php.Com Forum  |  Yardım Forumları  |  PHP Yardım Forumu  |  Farklı bir mysql sorgusu « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Farklı bir mysql sorgusu  (Okunma Sayısı 1076 defa)
salimbasar
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 2


Üyelik Bilgileri
Farklı bir mysql sorgusu
« : 19, 2005, 09:44:20 am »

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 Offline

Mesaj Sayısı: 873

Mastered PHP


Üyelik Bilgileri WWW
Ynt: Farklı bir mysql sorgusu
« Yanıtla #1 : 19, 2005, 10:02:42 am »

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 Smiley

veritabanınızı bilmeden birşey söylemek zor gibi geliyor.
Logged

salimbasar
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 2


Üyelik Bilgileri
Ynt: Farklı bir mysql sorgusu
« Yanıtla #2 : 19, 2005, 10:08:02 am »

yani sadece o yıldızlı olanları sayıp verecek bir sorgu oluşturmaıyormuyuz
Logged
Witkey
Ziyaretçi


E-Posta
Ynt: Farklı bir mysql sorgusu
« Yanıtla #3 : 19, 2005, 10:54:25 am »

umarım yardımcı olur

Kod:
<?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 Offline

Mesaj Sayısı: 194

oop rules the world


Üyelik Bilgileri
Ynt: Farklı bir mysql sorgusu
« Yanıtla #4 : 19, 2005, 11:01:49 am »

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.
Kod:
<?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 Offline

Mesaj Sayısı: 873

Mastered PHP


Üyelik Bilgileri WWW
Ynt: Farklı bir mysql sorgusu
« Yanıtla #5 : 19, 2005, 11:09:52 am »

konu id sini biliyorsanız, o konuya ait ilk mesajın kullanısını bulaqbilirisniz sanirim. sonucta burada bir bilinen gerekli gibi Smiley
Logged

hakdogan
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 64

Bilgininde zekatı vardır...


Üyelik Bilgileri
Ynt: Farklı bir mysql sorgusu
« Yanıtla #6 : 20, 2005, 05:11:26 am »

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ı)

Kod:

$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 Offline

Mesaj Sayısı: 873

Mastered PHP


Üyelik Bilgileri WWW
Ynt: Farklı bir mysql sorgusu
« Yanıtla #7 : 20, 2005, 06:26:13 am »

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 Offline

Mesaj Sayısı: 64

Bilgininde zekatı vardır...


Üyelik Bilgileri
Ynt: Farklı bir mysql sorgusu
« Yanıtla #8 : 20, 2005, 07:57:40 am »

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 Offline

Mesaj Sayısı: 873

Mastered PHP


Üyelik Bilgileri WWW
Ynt: Farklı bir mysql sorgusu
« Yanıtla #9 : 20, 2005, 08:07:19 am »

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


E-Posta
Ynt: Farklı bir mysql sorgusu
« Yanıtla #10 : 20, 2005, 06:37:40 pm »

Kod:
<?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
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.