[Çözüldü]Mysql belirli bir değerdeki içeriği limitli olarak nasıl seçerim

Başlatan ecarpar, 21 Kasım 2011 - 10:01:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ecarpar

"SELECT * FROM $DB_Tablo WHERE YayinDurumu='1'" ;
İle yayın durumu 1 olan değerleri seçtim.
"SELECT * FROM $DB_Tablo ORDER BY YaziId ASC LIMIT $baslangic,$limit";
ile de belirli adette olanları seçtim ,

"SELECT * FROM $DB_Tablo ORDER BY YayinDurumu='1' ASC LIMIT $baslangic,$limit";
gibi başarısız birde deneme yaptım :) Peki nasıl olurda yayındurumu 1 olan satırları limitli olarak nasıl çekerim ?
Eşşeğin uzun bir yolculuğa çıkmış olması onun at olarak döneceği anlamına gelmez.

sem

Copy - Paste kurbanı olmuşsunuz sanırım =)

"SELECT * FROM $DB_Tablo ORDER BY YayinDurumu ASC LIMIT $baslangic,$limit";



şeklinde olmalı. Yani = '1' kısmı olmayacak sadece.  ORDER BY ve WHERE parametreleri karışmış sanırım =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

ecarpar

Yavaş yavaş denemelerle çözüyorum mysql_query fonksiyonunu ...
$Sorgu=  "SELECT  YazanAdi,  tarih,  yorum , baslik,  YayinDurumu   FROM $DB_Tablo WHERE YayinDurumu = 1 LIMIT 0,2";
Doğru anlamışmıyım ?
Select de hangi kolonları seçersem while ile onları yazdırabilirim ancak?.
Düzeltme Notu: Her ne kadar bash komutları olmasada bu komutların da kod etiketi içerisinde yazılması en azından okunurluğunu ve seçilmesini artıracaktır.
Eşşeğin uzun bir yolculuğa çıkmış olması onun at olarak döneceği anlamına gelmez.

sem

Evet, aynen öyle, veri tabanından istediğiniz bilgiler "Sorgu" değişkenine verilir. O nedenle çektiğini kolonların değerlerine PHP içerisinden ulaşabilirsiniz.

Sorgularda ise hem koşul (WHERE), hem sıralama (ORDER BY ASC/DESC), sınırlandırma LIMIT ve diğer birimleri bir arada kullanmak isterseniz belirli bir söz dizimi (syntax) kullanmak gerekiyor.

MYSQL için söz dizimine şuradan ulaşabilirsiniz;

http://dev.mysql.com/doc/refman/5.0/en/select.html

Belirbir bir söz dizimi ile bir sorgu yollanır. Bu sorgu size veri tabnından istediğiniz verileri, istediğiniz formatta iletir. Sizde daha sonra döngü içerisinde bu verileri ayıklayarak istediğiniz gibi kullanabilirsiniz.

Önemli olan nokta dediğiniz gibi while ile sadece elnizdeki verilere erişebilirsiniz. Elinizdeki veriler ise SELECT ile veri tabanından elde etmiş olduğunz, yani isteğinize bağlı olan verilerdir.

(Yani yanlış olan sorgunuzda eğer yanılmıyorsam sıkıntılı kısım şu ORDER BY YayinDurumu='1'. ORDER BY sıralama yapmak için kolon ismi/isimleri alıyor. Siz koşul olarak gönderdiğiniz için MySQL bu sorguya anlam verememiş olabilir. WHERE YayinDurumu = 1 ORDER BY YayinDumuru ASC şeklinde koşulu WHERE atıp, ORDER BY kısmını da ayrıca belirtirseniz sıkıntı kalmayacak gibi gözüküyor.)

Kolay gelsin
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

alquirel

Bir ekleme yapmadan geçemeyeceğim.

WHERE YayinDurumu = 1 dedikten sonra ORDER BY YayinDurumu ASC demeye gerek yok aslında :D

ecarpar

Son hali
$Sorgu=  "SELECT  yazanadi,  tarih,  yorum , baslik,  yayindurumu   FROM $DB_Tablo WHERE dayindurumu = 1 LIMIT 0,2";

Şeklinde oldu ve olduda :) Açıklamalar için teşekkür ederim, hepsi benim için birbirinden değerli.
Eşşeğin uzun bir yolculuğa çıkmış olması onun at olarak döneceği anlamına gelmez.

alquirel

Yanlış anlaşılma olmasın, ben genel manada ORDER BY kullanmaya gerek yok demedim.
Zaten yayın durumu sadece 1 olan satırları almışken bunları yayın durumuna göre sıralatmak gereksiz olur demek istedim.

Ama son sorguda mesela yorumları tarihe göre sıralamak çok işine yarayabilir.

Bu arada WHERE, ORDER BY, LIMIT ifadelerinin sırası önemli değildir. Ama sorguyu kurallı bir İngilizce cümle gibi düşünürsek kabul gören bir sırası vardır, ki bu alışkanlık faydalı ve kolaylık sağlayıcıdır.

ecarpar

evet evet kesinlikle  sem0900 durumu fark etmiş zaten :) copy paste kurbanıyım orda ayrıca mysql sorgularından 1 gram anlamıyorum :) şu yazıdan önce sorsan ORDER BY nedir diye bilmezdim :)
Eşşeğin uzun bir yolculuğa çıkmış olması onun at olarak döneceği anlamına gelmez.

if