Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Iki sorguyu aynı anda listelemek ve sayfalamak ( sayfalama sorun )

<%
KayitSayisi = 20

If Request.QueryString("s") <> "" Then
Sayfa = CInt(Request.QueryString("s"))
Else
Sayfa = 1
End If

Set SQLTop = baglantim.Execute("SELECT COUNT(id) FROM haber where kategori=1 ")
usttop = SQLTop(0)


' 1 burda yaptigiim islem :

' haber tablosundan kategorisi 1 olan ve öncelik süresi bu gün ki tarih den büyük ise o kayıtları ilk olarak listeliyor.

Set rs = baglantim.Execute("SELECT * FROM haber where kategori=1 and oncelik_sure > '"&tarih&"' ORDER BY id desc LIMIT " & (KayitSayisi*Sayfa)-(KayitSayisi) & "," & KayitSayisi&"")

%>
<table style="width: 100%" cellspacing="0" cellpadding="0">
<%
i=1
Do While Not rs.EOF
%>
<tr>
<td><%=rs("baslik")%></td>
</tr>
<%
i=i+1
rs.MoveNext
loop
rs.close
%>
-------------------------------------------------------------
<%

' 2 burda yaptigiim islem :

' haber tablosundan kategorisi 1 olan ve öncelik süresi bu gün ki tarih den küçük ise o kayıtları sonradan listeliyor.


Set rs = baglantim.Execute("SELECT * FROM haber where kategori=1 and oncelik_sure < '"&tarih&"' ORDER BY id desc LIMIT " & (KayitSayisi*Sayfa)-(KayitSayisi) & "," & KayitSayisi&"")
%>
<%
i=1
Do While Not rs.EOF
%>
<tr>
<td><%=rs("baslik")%></td>
</tr>
<%
i=i+1
rs.MoveNext
loop
rs.close
%>
</table>







<%

' burda yaptigiim islem :

' sayfalama ıslemı

' ılk oncekı 1 2 3...7 8 9...10 11 12 sonrakı son

If CInt(usttop) > CInt(KayitSayisi) Then
intSayfaSayisi = CInt(usttop) / CInt(KayitSayisi)
If InStr(1,intSayfaSayisi,",",1) > 0 Then intSayfaSayisi = CInt(Left(intSayfaSayisi,InStr(1,intSayfaSayisi,",",1))) + 1
Aralik = 2
intSayfaAltSiniri = Sayfa - Aralik
intSayfaUstSiniri = Sayfa + Aralik
intSolGrupSayisi = 1 + Aralik
intSagAltSinir = intSayfaSayisi - Aralik
If (intSayfaUstSiniri >intSayfaSayisi) Then
intSayfaAltSiniri = intSayfaSayisi - (2 * Aralik)
intSayfaUstSiniri = intSayfaSayisi
End If
If (intSayfaAltSiniri <= 0) Then
intSayfaAltSiniri = 1
intSayfaUstSiniri = intSayfaAltSiniri + (2 * Aralik)
If intSayfaUstSiniri >= intSayfaSayisi Then intSayfaUstSiniri = intSayfaSayisi
End If
If intSolGrupSayisi >= intSayfaAltSiniri Then intSolGrupSayisi = intSayfaAltSiniri - 1
If intSagAltSinir <= intSayfaUstSiniri Then intSagAltSinir = intSayfaUstSiniri + 1
If Sayfa >1 Then %>
<a href="?s=1" title="İlk Sayfa">Ilk Sayfa</a>
<a href="?s=<%=Sayfa-1%>" title="Önceki Sayfa">Önceki Sayfa</a>
<%
End If
For i = 1 to intSolGrupSayisi
If CInt(i) = (Sayfa) Then
'Response.Write("<span class=""sayfala"">")
Else %>
<a href="?s=<%=i%>" title="<%=i%> Sayfa">
<%
End If
Next
If (intSayfaAltSiniri - intSolGrupSayisi >1 ) Then Response.Write "<b>. . .</b>"
For i = intSayfaAltSiniri to intSayfaUstSiniri
If CInt(i) = CInt(Sayfa) Then
Response.Write("<span class=""sayfala_aktif"">")
Else %>
<a href="?s=<%=i%>" title="<%=i%> Sayfa">
<%
End If
Response.Write i &"</a></span>"
Next
If (intSagAltSinir - intSayfaUstSiniri >1) Then Response.Write "<b>. . .</b>"
For i = intSagAltSinir to intSayfaSayisi
If CInt(i) = CInt(Sayfa) Then
Response.Write("<span class=""sayfala"">")
Else %>
<a href="?s=<%=i%>" title="<%=i%> Sayfa">
<%
End If
Response.Write i &"</a></span>"
Next
If CInt(Sayfa) <>CInt(intSayfaSayisi) Then %>
<a href="?s=<%=Sayfa+1%>" title="Sonraki Sayfa">Sonraki Sayfa</a>
<a href="?s=<%=intSayfaSayisi%>" title="Son Sayfa">Son Sayfa</a>
<%
end if
end if
%>


Buraya kadar herşey tamam.

Sorun Yasadığım yer

once 1. Sorgu

Sonra 2. Sorgu


Ornek olarak.

1. sorguda 40 kayıt var

2. sorguda 50 kayıt var

Bir sayfada 20 kayıt lıstelenecek.

öncelik 1. sorgu kayıtları

ilk iki sayfada 1. sorgu listelenecek

ikinci sayfadan sonra 2. sorgu listelenecek.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Supervisor adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    107 cevap - 0 soru
    basit bir onerim su olabilir.
    Sorgu sonuclarini direkt basmak yerine oncelikle datatable nesnesine atarsan ,
    dt1 , dt2 olsun.

    dt1.Merge(dt2);
    seklinde bu iki tabloyu birlestirip , arka arkaya yazdirabilirsin.
    • Selim adlı üyenin fotoğrafı Selim
      Zaten tablo ayni tablo. "haber"

      1.Sorguda "oncelik_sure:20.12.2012" > "bugun_tarih:05.12.2012"

      2.Sorguda "oncelik_sure:04.12.2012" < "bugun_tarih:05.12.2012" (oncelik sureyi gecmis sayidim)

      bu iki sorgunun lsitelemesinde sorun yok.

      Sorun Sayfalamada
      Öncelik 1.sorguda, 1.sorguda kayıtlar bitikten sonra 2.sorguya geçmesi
      9 yıl önce yazılmış
    • Supervisor adlı üyenin fotoğrafı Supervisor
      tablo ayni olmasa zaten birlestiremezsin .
      DataTable nesnesinden bahsediyorum.
      Iki sorgunu da datatable da toplayim birlestir.
      9 yıl önce yazılmış