Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » PHP » Php + SQL Sıralama Sorunu


Yanıt
 
LinkBack Seçenekler
Old 28.07.2003   #1 (permalink)
Denwer
 
Denwer's Avatar
 
Üyelik Tarihi: 24.02.2003
Yer: İstanbul
Yaş: 23
Mesaj: 92
Php + SQL Sıralama Sorunu

Merhabalar,
Benim sorunum sıralamayla alakalı. Elimde UYENO - INT(4) , Primary Key - ve KAYITNO - VARCHAR(25) - alanları olan bir tablo var.

SELECT KAYITNO
FROM listeler
WHERE KAYITNO
LIKE "a%"
ORDER BY KAYITNO DESC

Sorgusunu kullanığımda :

A99
A98
A96
A101
A1001
A100

sonucunu alıyorum. Aynı şekilde :

SELECT MAX( KAYITNO )
FROM listeler
WHERE KAYITNO

sorgusunu kullandığımda ise :

A99

sonucunu alıyorum. Benim istediğim A1001 sonucunu alabilmek, teoride yukarıdaki iki sorgunun sonucundada ilk sırada A1001 i almam gerekiyor - sanırım ?? - ama olmuyor.

sorun nedir nerede yanlış yapıyorum ? Yardımcı olursanız sevinirim ?

İyi Çalışmalar,
Aydın "Denwer" Ü.
Denwer şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.07.2003   #2 (permalink)
uzaytek
 
uzaytek's Avatar
 
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
Problemin kayıt no allanının varchar turu olmasından kaynaklanıyor onu int'e cevirmen sorunu halledecektir.
Diğer bir çözüm yolu ise(yok abi bana varchar lazım dersen) şu şekilde sorgular kullanman lazım

SELECT KAYITNO,KAYITNO+0 AS sirali
FROM listeler
WHERE KAYITNO
LIKE "a%"
ORDER BY sirali DESC
__________________
uzaytek.com
uzaytek şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.07.2003   #3 (permalink)
complex
 
Üyelik Tarihi: 28.05.2001
Yer: Bursa
Yaş: 25
Mesaj: 198
uzaytek 'in de dediği gibi sorun değer string olduğu için A99 A1000 den büyük çünkü string sıralamalarda mantık soldan sağa doğru en büyük değerleri dizmek üzerine kurulur. Eğer bundan kurtulmak istiyorsan A0099 şeklinde kayıt yapabilirsin girmelisin.
complex şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.07.2003   #4 (permalink)
AnIL
 
AnIL's Avatar
 
Üyelik Tarihi: 30.09.2001
Yer: istanbul
Yaş: 27
Mesaj: 415
uzaytek ,n verdigi "kayitno+0" fikri çok mantıklı ve kullanışlı; hiç aklıma gelmezdi sanırım; teşekkürler.
__________________
:::: AnIL'dan bu kadar:::::
AnIL şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.07.2003   #5 (permalink)
Denwer
 
Denwer's Avatar
 
Üyelik Tarihi: 24.02.2003
Yer: İstanbul
Yaş: 23
Mesaj: 92
Ewt uzaytek'in dediği baya mantıklı. Hemen denemelerini yapacam. Eğer sorun hala dewam ederse ( ki sanrım bu benim başarısızlığımdan olur ) kullanmayı düşündüğüm sabah aklıma gelen uzuuuuuun ama çalışan bir yol war:

ilk olarak kayıtno alanındaki en büyük uzunluğu bulmak ( SELECT MAX(LENGTH(KAYITNO)) FROM listeler ), daha sonra tabloda bu değere göre bir arama yapmak ( Select Max(KAYITNO) From Listeler WHERE KAYITNO
LIKE "a%" AND LENGTH( KAYITNO ) = 5 ; // burada 5 bir önceki sorgudan elde ettiğim değer ) . Dediğim gibi uzuuun ama çalışıyor...

Burda yazarken aklıma takıldı düşündüm ama bulamadım : bu yukarıdaki iki sorguyu tek adımda yaptırıp (araya ; koyarak ) ilkindeki değeri (5) ikinci sorguya aktarmanın bir yolu varmıdır ?

İlginiz İçin Teker Teker Teşekkür Ederim,
İyi Çalışmalar,
Aydın "Denwer" Ü.
Denwer şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.07.2003   #6 (permalink)
uzaytek
 
uzaytek's Avatar
 
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
@AnIL fikir benimde aklıma gelmemisti zaten

@Denwer

SELECT MAX( kayitno + 0 )
FROM listeler

type dönüşümleri için
MySQL manual'de set type diye arayabilirsiniz.
__________________
uzaytek.com
uzaytek şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.07.2003   #7 (permalink)
soul
 
soul's Avatar
 
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,275
Alıntı:
Gönderen: Denwer
Ewt uzaytek'in dediği baya mantıklı. Hemen denemelerini yapacam. Eğer sorun hala dewam ederse ( ki sanrım bu benim başarısızlığımdan olur ) kullanmayı düşündüğüm sabah aklıma gelen uzuuuuuun ama çalışan bir yol war:

ilk olarak kayıtno alanındaki en büyük uzunluğu bulmak ( SELECT MAX(LENGTH(KAYITNO)) FROM listeler ), daha sonra tabloda bu değere göre bir arama yapmak ( Select Max(KAYITNO) From Listeler WHERE KAYITNO
LIKE "a%" AND LENGTH( KAYITNO ) = 5 ; // burada 5 bir önceki sorgudan elde ettiğim değer ) . Dediğim gibi uzuuun ama çalışıyor...

Burda yazarken aklıma takıldı düşündüm ama bulamadım : bu yukarıdaki iki sorguyu tek adımda yaptırıp (araya ; koyarak ) ilkindeki değeri (5) ikinci sorguya aktarmanın bir yolu varmıdır ?

İlginiz İçin Teker Teker Teşekkür Ederim,
İyi Çalışmalar,
Aydın "Denwer" Ü.
Aslında SQL server' da ve Access ta direk
Kod:
Select Max(KAYITNO) From Listeler WHERE KAYITNO
LIKE "a%" AND LENGTH( KAYITNO ) = (SELECT MAX(LENGTH(KAYITNO))  FROM listeler )
şeklinde kullanabilirsin ancak MySQL in buna desteği olmaması gerekiyor.

Yeni versiyonda butip içiçe SQL lere desteke hakkında birşeyler vardı ancak tam bilmiyorum.
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site!
soul şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Yanıt

Etiketler
sorunu , siralama , sql , php



 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

UslanmaM baktabul.com TEKplatform TEKplatform

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.3 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC5

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 01:07.