Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
09, 2008, 02:12:38 am
42744 Mesaj 8090 Konu Gönderen: 17931 Üye
Son üye: medist
Turk-Php.Com Forum  |  Yardım Forumları  |  Veritabanı Yardım Forumu  |  Onaylanan firmaların ürünlerini listeleme « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Onaylanan firmaların ürünlerini listeleme  (Okunma Sayısı 990 defa)
scaka
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 45



Üyelik Bilgileri WWW
Onaylanan firmaların ürünlerini listeleme
« : 07, 2005, 09:20:10 am »

Onaylanan (aktif=1 olan) firmaların ürünlerini ilgili kategori altında listelemeye çalışıyorum ama SQL kodunu bir türlü oluşturamadım. Yardım pls!


ÖZETLE TABLO YAPIM:
firmalar
id
aktif (0=onaylanmaış, 1=onaylanmış)

urunler
id
firma (firma id si kayitli)
kategori

Denediklerim:

Kod:
$sonuc = @mysql_query("SELECT * FROM urunler,firmalar WHERE
firmalar.aktif='1' AND urunler.kategori='$kategori' ORDER BY id DESC");

$sonuc = @mysql_query("SELECT urunler.id, urunler.firma, firmalar.id FROM
urunler.id AS u, firmalar.id AS f WHERE u.firma=f.id AND f.aktif='1' AND
u.kategori='$kategori[id]' ORDER BY u.id DESC");

$sonuc = @mysql_query("SELECT urunler.id FROM urunler.firma, firmalar.id
WHERE firmalar.id=urunler.firma AND firmalar.aktif='1' AND
urunler.kategori='$kategori[id]' ORDER BY urunler.id DESC");
Logged

I COME BACK!
echo " Merhaba hayat! "
www.alanorweb.net
Witkey
Ziyaretçi


E-Posta
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #1 : 07, 2005, 01:34:17 pm »

Kod:
$s1 = mysql_query("Select * from urunler");
$g1 = mysql_result($s1,0,"firma");
$s2 = mysql_query("Select * from firmalar WHERE id='$g1' AND aktif =1 ORDER BY `id` DESC");
Umarım yardımcı olur Wink
Logged
serkan
Serkan Ceylani
Admin
*
Offline Offline

Mesaj Sayısı: 134


Üyelik Bilgileri WWW
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #2 : 07, 2005, 07:37:27 pm »

Diyelim ki:

firmalar:

fid    aktifmi
1        0
2        1
3        1


urunler icinde:

uid      firma_id       kategori_id
1            1                  3
2            1                  5
3            2                  7
4            3                  8

olsun:

SQL:

SELECT * FROM urunler LEFT JOIN firmalar ON firmalar.fid=urunler.firma_id WHERE firmalar.aktifmi = 1;

Basarilar,


Logged

İletişim:

xmpp:serkan@member.turk-php.com (Jabber)

(Lütfen sorularınızı forum içinde sorunuz.)

Arşiv:
http://arsiv.turk-php.com

Serkan
scaka
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 45



Üyelik Bilgileri WWW
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #3 : 07, 2005, 09:47:08 pm »

Öncelikle ilginiz için teşekkür ederim.

witkey senin verdiğin örnekte sadece 1 firma listelenebiliyor.

serkan senin verdiğin örneğe * yerine urunler.firma,urunler.resim,firmalar.id ekleyince mükemmel bir şekilde çalıştı çok saolasın. Delirmek üzereyken hızır gibi yetiştin valla Smiley

Kod:
SELECT urunler.firma,urunler.resim,firmalar.id FROM urunler LEFT JOIN firmalar ON firmalar.fid=urunler.firma_id WHERE firmalar.aktifmi = 1;

Aslında çok satırlı verilerin bulunduğu tabloda performans açısından * kullanmak sakıncalı biliyorum ama az satırlı tablolar için gerekli fieldleri tek tek yazmamak için * kullanmayı tercih ediyorum. Birden fazla tablonun birleştirildiği sorgularda (mesela bu sorgu)  * kullanamayacak mıyız? Yada nasıl kullanabiliriz?
Logged

I COME BACK!
echo " Merhaba hayat! "
www.alanorweb.net
Witkey
Ziyaretçi


E-Posta
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #4 : 07, 2005, 11:35:33 pm »

ya benım verdıgım zaten tek sonuc ıceren bır sorgu Cheesy sadece örnek olması açısından yazmıştım Smiley
Logged
serkan
Serkan Ceylani
Admin
*
Offline Offline

Mesaj Sayısı: 134


Üyelik Bilgileri WWW
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #5 : 10, 2005, 11:17:06 am »

Hangi alanlarini sectigini bilmedigim icin * yazdim.Ona gore tabloyuda alanlarin isimlerini "farkli" olacak sekilde ayarladim :

Diyelim ki:

firmalar:

fid    aktifmi
1        0
2        1
3        1


urunler icinde:

uid      firma_id       kategori_id
1            1                  3
2            1                  5
3            2                  7
4            3                  8

olsun:

Onemli olan JOIN kismi ile iki tabloyu birlestirmek.Orijinal tablolarinda alan isimleri ayni oldugu
icin "sizin" ozel olarak o alanlari tablo ile belirtmeniz gerekiyor...

Her tabloda "id" kullanarak anahtar yaratmak yerine "u_id" gibi kullanirsaniz boyle durmlarla karsilasmazsiniz,
Logged

İletişim:

xmpp:serkan@member.turk-php.com (Jabber)

(Lütfen sorularınızı forum içinde sorunuz.)

Arşiv:
http://arsiv.turk-php.com

Serkan
serkan
Serkan Ceylani
Admin
*
Offline Offline

Mesaj Sayısı: 134


Üyelik Bilgileri WWW
Ynt: Onaylanan firmaların ürünlerini listeleme
« Yanıtla #6 : 10, 2005, 11:23:11 am »

Her isin bir teknigi vardir...

Istediginiz verileri cekmeyecekseniz/cekemeyecekseniz veritabani kullanmanin ayricaligi nedir?

Sadece unutmayin ki verileri cekerken istemediginiz alanlarin veri setinde bulunmasi
sorgu icin gececek zamani ve o sorgu icin ayrilacak hafiza alanini arttiracaktir.O nedenle "*" kullanmak "yanlis" olur demek yerine
eger butun alanlarin cekilmesi zorunlu degilse alanlarin birer birer tanimlanmasi daha "dogru" olur demek lazimdir.
Logged

İletişim:

xmpp:serkan@member.turk-php.com (Jabber)

(Lütfen sorularınızı forum içinde sorunuz.)

Arşiv:
http://arsiv.turk-php.com

Serkan
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


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