lostyazilim
tr.link

php ile sorgulanan verileri sayfalama sorunu

4 Mesajlar 835 Okunma
lstbozum
tr.link

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
Arkadaşlar merhaba,

php ile çektiğim verileri sorunsuz listeledim ve bu verileri çeşitli kriterlere göre sorgulayabiliyorum. bunları sayfalandırmak istiyorum şimdide. verileri bütün halinde sorunsuz olarak sayfalayabiliyorum. fakat kriterler işin içine girdiğinde sıkıntı yaşıyorum. muhtemelen mantık hatası var.

Basit olarak mantık şu şekilde;

if($_POST['sorgula']){

***sorgulanan veriler***

}else{

***bütün veriler***

}

***sayfalama kodları***

örneğin falanca bölümde öğrencileri sorguladım diyelim. sorunsuz bir şekilde geldi. fakat sayfalama kısmında 2. ya da 3. sayfaya geçince bütün öğrencilerin bulunduğu kısmın 2. ve 3. sayfasını getiriyor. mantık olarak nerede hata yapıyor olabilirim? sayfalama php kodlarının yeri doğru mu?

Umarım anlatabilmişimdir. kodlar uzun diye atmadım. isterseniz koyabilirim.

şimdiden teşekkürler..
 

 

www.instegral.com
wmaraci
reklam

stk27 stk27 WM Aracı Kullanıcı
  • Üyelik 16.12.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek web programcılık
  • Konum Gaziantep
  • Ad Soyad S** A**
  • Mesajlar 89
  • Beğeniler 67 / 19
  • Ticaret 1, (%0)
Sorgulamaktan kastınız filtreleme işlemi ise eğer. Sorgu değerlerini sonraki sayfalarda da kullanabilmek gerek kod yapınız nasıl bilmiyorum ama mantık olarak get ile sorguları gönderdiğinizi varsayarsak sorgularak yeni link oluşturacağı için sayfalarda o link üzerindeki değerlere göre belirlenebilir
veya
sorgu ları postla gönderiyorsan filtreler diye COOKIE dizi oluşturup onun üzerinden sayfalama yapabilirsin

Yani kısacası sonraki sayfalar için sorgu(filtre) değerlerinide bilmeniz gerek
murattkilinc
 

 

murattkilinc murattkilinc www.instegral.com Kullanıcı
  • Üyelik 06.04.2016
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İzmir
  • Ad Soyad M** K**
  • Mesajlar 119
  • Beğeniler 7 / 15
  • Ticaret 0, (%0)
stk27 dostum dediğin gibi cookie şeklinde tutmaya çalıştım verileri.

setcookie("array[start_date]", "$start_date");
setcookie("array[end_date]", "$end_date");
setcookie("array[graduated_type]", "$graduated_type");
setcookie("array[graduated_faculty]", "$graduated_faculty");
setcookie("array[graduated_department]", "$graduated_department");
setcookie("array[alumni_name]", "$alumni_name");
setcookie("array[alumni_surname]", "$alumni_surname");
setcookie("array[education_type]", "$education_type");

echo $_COOKIE["array"]["start_date"];
echo $_COOKIE["array"]["end_date"];
echo $_COOKIE["array"]["graduated_type"];
echo $_COOKIE["array"]["graduated_faculty"];
echo $_COOKIE["array"]["graduated_department"];
echo $_COOKIE["array"]["alumni_name"];
echo $_COOKIE["array"]["alumni_surname"];
echo $_COOKIE["array"]["education_type"];

$start_date = $_COOKIE["array"]["start_date"];
$end_date = $_COOKIE["array"]["end_date"];
$graduated_type = $_COOKIE["array"]["graduated_type"];
$graduated_faculty = $_COOKIE["array"]["graduated_faculty"];
$graduated_department = $_COOKIE["array"]["graduated_department"];
$alumni_name = $_COOKIE["array"]["alumni_name"];
$alumni_surname = $_COOKIE["array"]["alumni_surname"];
$education_type = $_COOKIE["array"]["education_type"];



fakat hala aynı şekilde hata almaya devam ediyorum.
 

 

www.instegral.com

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1118
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
QueryString sayfa numarasını taşıdığını varsayıyorum, ayrıca php bilmediğimi beyan edeyim. MySQL tarafındaki sorgunu yazayım gerisini sen çıkar. (C# yazıyorum fakat çıkarabilirsin.).

Mantık şu:
1 - Koşuluna uygun toplam kaç kayıt var (Örnek: 23)
2 - Koşuluna uygun kaydın bütün listesini veren sorgu: ({1, Ali, İnal}, {2, Osman, Maltaş}, {3, Koray, Cingöz},...{23, Serkan, Usta})

Peki bize bunlar ne için lazım. Toplam 23 kayıt var ve biz her sayfa 10 kayıt olmak üzere kaç tane sayfa göstereceğiz? Kod biraz karmaşık gelebilir fakat bunun kısa hali şöyle: Elimde x koşulu var sorguyu x'e göre filtrele. Elimde y koşulu var sorguyu y'ye göre filtrele. Daha da ilerisi elimde hem x hem de y var o zaman sorguyu hem x'e hem de y'e göre filtrele. Diyoruz kısaca.




public long fnToplam_Kayit(string strKelime, Guid? gdUst_Menu_ID_FK, Guid? gdDil_ID_FK, Guid? gdMenu_Yer_ID_FK, sbyte? sbDurum)
{
long lngSonuc = 0;
using (DB_CDIYS_MYSQL db = new DB_CDIYS_MYSQL())
{
string strSorgu = " SELECT COUNT(B.ID) FROM CDIYS_tblMenuler AS A INNER JOIN CDIYS_tblMenuler_ve_Diller AS B ON A.menu_ID = B.menu_ID_FK INNER JOIN IYS_tblMenu_Yerleri AS C ON A.menu_yer_ID_FK = C.menu_yer_ID WHERE 1=1";
if (!string.IsNullOrEmpty(strKelime))
strSorgu += " AND (B.menu LIKE '%" + strKelime + "%' OR C.kod LIKE '%" + strKelime + "%' OR C.yer LIKE '%" + strKelime + "%')";
if (gdUst_Menu_ID_FK != null)
strSorgu += " AND (A.ust_menu_ID_FK = '" + gdUst_Menu_ID_FK + "')";
if (gdDil_ID_FK != null)
strSorgu += " AND (B.dil_ID_FK = '" + gdDil_ID_FK + "')";
if (gdMenu_Yer_ID_FK != null)
strSorgu += " AND (A.menu_yer_ID_FK = '" + gdMenu_Yer_ID_FK + "')";
if (sbDurum == 0 || sbDurum == 1)
strSorgu += " AND B.durum = " + sbDurum;
lngSonuc = db.Database.SqlQuery(strSorgu).First();
};
return lngSonuc;
}



public List fnSayfala(string strKelime, Guid? gdDil_ID_FK, byte? bytDurum, long? lngBaslangic_Degeri, int? intGosterim_Adeti)
{
List liste = new List();
using (DB_CDIYS_MYSQL db = new DB_CDIYS_MYSQL())
{
string strSorgu = " SELECT * FROM CDIYS_tblMenuler_ve_Diller WHERE 1=1";
if (!string.IsNullOrEmpty(strKelime))
strSorgu += " AND (menu LIKE '%" + strKelime + "%' OR harici_baglanti LIKE '%" + strKelime + "%')";
if (gdDil_ID_FK != null)
strSorgu += " AND dil_ID_FK = '" + gdDil_ID_FK + "'";
if (bytDurum == 0 || bytDurum == 1)
strSorgu += " AND durum = " + bytDurum;
strSorgu += " ORDER BY menu_ID_FK DESC, dil_ID_FK DESC, sira ASC";
if (lngBaslangic_Degeri != null)
strSorgu += " LIMIT " + lngBaslangic_Degeri;
if (intGosterim_Adeti != null)
strSorgu += ", " + intGosterim_Adeti;
liste = db.Database.SqlQuery(strSorgu).ToList();
};
return liste;
}
stk27

kişi bu mesajı beğendi.

www.ontedi.com
www.cizgi.site
wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 4 kişi okuyor. (0 kullanıcı ve 4 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al