lostyazilim
tr.link

Sınıf içerisinde döngüleri kullanma [SORU]

10 Mesajlar 866 Okunma
lstbozum
tr.link

netman netman netman Kullanıcı
  • Üyelik 30.01.2017
  • Yaş/Cinsiyet 35 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 729
  • Beğeniler 204 / 203
  • Ticaret 10, (%90)
Merhaba, php sınıf içerisinde while döngösünü nasıl kullanabilirim mantığı nedir acaba? Örnek vererek açıklayabilecek biri var mı?

Mysql listeleme, silme,ekleme, güncelleme işlemlerinin olduğu ve üyelik işlemlerini içeren bir class yapmaya çalışıyorum.

sınıfı çalıştırdığında şu şekilde bilgileri almak istiyorum.

$uyegetir->uyeler->uye_id;
$uyegetir->uyeler->uye_cep;
$uyegetir->uyeler->uye_kayit_tarihi;
$uyegetir->uyeler->uye_status;

şeklinde çıktı almak istiyorum fakat döngüyü class içerisinde mi yoksa üye listesini veya üye bilgilerini çekeceğim sayfada mı kullanmalıyım, mantık kuramadım. Yardımcı olursanız çok sevinirim.
 

 

// Acta est fabula
wmaraci
reklam

AhmetKarabulut AhmetKarabulut WM Aracı Kullanıcı
  • Üyelik 11.09.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad A** K**
  • Mesajlar 1077
  • Beğeniler 361 / 361
  • Ticaret 33, (%100)
Dilin ve SQL serverın önemi yok. Yanlış anlamadıysam database'inizdeki kullanıcıların tümünü listelemek istiyorsunuz.

Aşağıdaki pseudocode üzerinde mantığı kurabilirsiniz. Üyeleri listelerken
While(dbDeUyeVarken)
{
uyeId
uyeCep
uyeKayitTarihi
uyeStatus
}
 

 

netman netman netman Kullanıcı
  • Üyelik 30.01.2017
  • Yaş/Cinsiyet 35 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 729
  • Beğeniler 204 / 203
  • Ticaret 10, (%90)

AhmetKarabulut adlı üyeden alıntı

Dilin ve SQL serverın önemi yok. Yanlış anlamadıysam database'inizdeki kullanıcıların tümünü listelemek istiyorsunuz.

Aşağıdaki pseudocode üzerinde mantığı kurabilirsiniz. Üyeleri listelerken
While(dbDeUyeVarken)
{
uyeId
uyeCep
uyeKayitTarihi
uyeStatus
}


Evet bilgilerini mysql dan çektiğim üye listeleme silme güncelleme gibi işlemleri yapabileceğim bir sınıf yapmaya çalışıyorum orta derece php biliyorum biraz daha ayrıntılı açıklarsanız sanırım kavrayabileceğim
 

 

// Acta est fabula

AhmetKarabulut AhmetKarabulut WM Aracı Kullanıcı
  • Üyelik 11.09.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad A** K**
  • Mesajlar 1077
  • Beğeniler 361 / 361
  • Ticaret 33, (%100)
Yani üyeleri listeleyeceğniiz class içinde önce Select ile tüm üyelerinizi seçip daha sonra while döngüsünde bunları yazdırabilirsiniz.

Bu örnek linki incelerseniz size bir yol gösterici olur sanıyorum

http://stackoverflow.com/questions/13547000/list-all-users-on-sql-to-html-page
 

 

wmaraci
wmaraci

netman netman netman Kullanıcı
  • Üyelik 30.01.2017
  • Yaş/Cinsiyet 35 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 729
  • Beğeniler 204 / 203
  • Ticaret 10, (%90)
Yanlış anlaşıldım sanırım şöyle bir kod oluşturdum fakat çok saçma olabilir sınıf yapısını tam bilmediğimden alakasız birşey olabilir.


class Uyeler {
public $uye;
public $uyeler;

public function __construct() {
$uyeler = mysql_query("SELECT * FROM uyeler");
$uye_aktif = mysql_query("SELECT * FROM uyeler WHERE status='1' ");
$uye_pasif = mysql_query("SELECT * FROM uyeler WHERE status='0' ");

$this->uyeler = mysql_fetch_array($uyeler);
$this->uyeler_a = mysql_fetch_array($uye_aktif);
$this->uyeler_p = mysql_fetch_array($uye_pasif);

$this->uyeler->uye_id = $this->uyeler['uye_id'];
$this->uyeler->uye_cep = $this->uyeler['uye_cep'];
$this->uyeler->uye_kayit_tarihi = $this->uyeler['uye_kayit_tarihi'];
$this->uyeler->uye_status = $this->uyeler['uye_status'];


}


}


listelediğim sayfa ise şu şekilde. döngü sürekli tekrar ediyor yani 3 adet içerik var ama yüzlerce satır açıyor.



require 'inc/data.Class.php';
require 'inc/function.php';
require 'inc/mysql.php';
$uyegetir = new Uyeler();
?>



while ($uyegetir) {
?>

  • uyeler->uye_id; ?>

  • uyeler->uye_cep; ?>

  • uyeler->uye_kayit_tarihi; ?>

  • uyeler->uye_status; ?>


}
?>
 

 

// Acta est fabula

KadirCeyhan KadirCeyhan WM Aracı Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Denizli
  • Ad Soyad K** C**
  • Mesajlar 689
  • Beğeniler 0 / 203
  • Ticaret 6, (%100)
while da herhangi bir koşul yok çünkü. Sürekli true dönecek. Bir kısıtlama koymanız yada zamanla tükenecek bir şart koymanız gerekmekte.

Ek olarak -> status çekerken 0 veya 1 gibi integer ibareleri tek tırnak içinde yazmayın. Direkt olarak "SELECT ... WHERE status = 0" şeklinde kullanabilirsiniz.
 

 

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
phpye tecavüz etmişsiniz :D

class yapısına gerek yok aslında ama yapmıssınız artık :)
normalde while yerine foreach kullanırdım o şekil kullanmak icin return degerini fetch array ile almalısınız. Aşağıda size düzenledim biraz burdan yola cıkarak devamını getirirsinz die umut ediorum :D


class Uye {

public function __construct() {

}

public function aktifUyeler(){
$uye_aktif = mysql_query("SELECT * FROM uyeler WHERE status='1' ");
return $uye_aktif;
//return mysql_fetch_array($uye_aktif);
}


}



?>


$uye = new Uye;

$aktifUyeler = $uye->aktifUyeler();

while ($aktifUye = mysql_fetch_assoc($aktifUyeler) ) {
?>



}
?>
 

 

MultiAnaliz.com

netman netman netman Kullanıcı
  • Üyelik 30.01.2017
  • Yaş/Cinsiyet 35 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 729
  • Beğeniler 204 / 203
  • Ticaret 10, (%90)
Valla haklısınız bir tecavüz söz konusu olabilir :D Kendi kendimi geliştirmeye çalışıyorum yanlış yapa yapa doğruyu bulacağız sanırım. Hiçbirşey bilmiyorum diyemem ama çok birşeyde bilmiyorum. Tarif edilip anlatıldığı zaman yapabilirim diye düşünüyorum. Ben bir deneyeyim tekrar bakalım yine sorun yaşayacak mıyım. :)
 

 

// Acta est fabula

netman netman netman Kullanıcı
  • Üyelik 30.01.2017
  • Yaş/Cinsiyet 35 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 729
  • Beğeniler 204 / 203
  • Ticaret 10, (%90)

Yeninesil44 adlı üyeden alıntı

phpye tecavüz etmişsiniz :D

class yapısına gerek yok aslında ama yapmıssınız artık :)
normalde while yerine foreach kullanırdım o şekil kullanmak icin return degerini fetch array ile almalısınız. Aşağıda size düzenledim biraz burdan yola cıkarak devamını getirirsinz die umut ediorum :D


class Uye {

public function __construct() {

}

public function aktifUyeler(){
$uye_aktif = mysql_query("SELECT * FROM uyeler WHERE status='1' ");
return $uye_aktif;
//return mysql_fetch_array($uye_aktif);
}


}



?>


$uye = new Uye;

$aktifUyeler = $uye->aktifUyeler();

while ($aktifUye = mysql_fetch_assoc($aktifUyeler) ) {
?>



}
?>


Sorguyu __construct dışına aldığımda çalışmıyor, __construct içinde olması gerekmiyor mu ?
 

 

// Acta est fabula

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1033
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
yazdığım kodların çalışması gerekiyor bir hata yaptınız heralde.

Construct classı ilk tanımladıgında yani new Uye kısmını yazdıgında çalışacak olan kodlar.
sürekli yeni dosya açıp contstruct ile çalıştırmak pek akıllıca degil. Uyeyle ilgili fonksionların tek bir class da olması daha iyi.

döngüleride genelde htmli bastıgınız yerde yapılır böle kullanın bence
 

 

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