wmaraci reklam
lidertakipci

php while döngüsü veriyi 1 kez çekme

8 Mesajlar 1.410 Okunma
advertseo
wmaraci reklam

thepurge thepurge WM Aracı Kullanıcı
  • Üyelik 26.11.2019
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** Ç**
  • Mesajlar 217
  • Beğeniler 30 / 25
  • Ticaret 5, (%100)
Merhaba arkadaşlar,

ben şimdi mesajlaşma sistemi yazdım.

Burada

karşı taraftan mesajı while ile alıyorum örneğin bu şekile ama karşı taraftan aynı kişi yani id den gelen veriyi de while döngüsü alt alta alıyor ben istiyorum ki aynı kişiden gelen mesaj while döngüsünde bir altta sıralaması yerine gönerdiği son mesaj görünsün ama başkası mesaj gönderdiğinde onu döngü içine alsın mesela şu şekilde wmaracinda biri size mesaj attında son attı mesaj görünyüor ama başkasının attığı mesaj bir altta görünüyor o şekilde bbunu nasıl yapabilirim ?



$mesajlar=$db->prepare("SELECT * from mesaj where gonderilen_id=:kullanici_id order by mesaj_id DESC ");
$mesajlar->execute(array(
'kullanici_id' => $kullanicicek['kullanici_id']
));

while($mesaj=$mesajlar->fetch(PDO::FETCH_ASSOC)){


 

 

wmaraci
reklam

onnoajans onnoajans WM Aracı Kullanıcı
  • Üyelik 13.03.2019
  • Yaş/Cinsiyet 34 / E
  • Meslek Pc programcılığı
  • Konum Muğla
  • Ad Soyad G** E**
  • Mesajlar 61
  • Beğeniler 2 / 13
  • Ticaret 1, (%100)
php while döngüsü veriyi 1 kez çekme

aslında while ile 1 kez veri çekme çok yanlıs bir başlık olmuş while yani döngünün çalışma mantığı şudur:

id,isim,mesaj,okundu gibi veriler vardır ve bu veriler deneme stunundadır.


while herşeyi çeker , ona şart koşarsın şartlar kadar veri çeker


sende bu verilerin hepsini cekmek istersen şu şekilde kullanırsın

$sorgu="SELECT * FROM deneme";
$gonder = mysqli_query($baglanti, $sorgu);
while($satir = mysqli_fetch_array($gonder))
{
?>




}
?>



bu verilerin sadece 1 tanesini çeksin baştaki yada sondaki dersen şu şekilde yaparsın ki mantıksız bir kod olduğunu düşünüyorum

$sorgu="SELECT * FROM deneme order by id desc limit 1";
$gonder = mysqli_query($baglanti, $sorgu);
while($satir = mysqli_fetch_array($gonder))
{
?>




}
?>





bu şekilde çıktı sıralama yapmaksınızın hepsini çekecektir buna bir şart koyalım mesela diyelimki sadece okunanları cekelim


$sorgu="SELECT * FROM deneme where okundu=''1";
$gonder = mysqli_query($baglanti, $sorgu);
while($satir = mysqli_fetch_array($gonder))
{
?>




}
?>



senin yapmak istediğin tam olarak nedir sorgu içinde sorgumu oluşturmak

paint ile çizersen görsel daha iyi olabilir
 

 

http://www.onnoajans.com

thepurge thepurge WM Aracı Kullanıcı
  • Üyelik 26.11.2019
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** Ç**
  • Mesajlar 217
  • Beğeniler 30 / 25
  • Ticaret 5, (%100)
onnoajans Merhaba hocam ben pdo üzerinden yapıyorum amacım şu 1 kişi bana mesaj gönderdiğin de örnek vereyim

facebookta bana birisi mesaj gönderdiğinde ilk sayfada döngü olarak herkesin mesajı görünüyor ama mesajı aynı kişi gönderirse tekrar ekrana yazmak yerine tek sefer gönderdiği son mesajı görrünüyor ama başkası mesaj yazarsa yine döngü ile ekrana yazıyor aşağıdaki gibi ama ben çektim 50 tane mesaj bile atsam peş peşe ekrana 50 mesajı yazıyor ben mesajı oku ekranına tıkladığımda tüm mesajlar görünsün istiyorum bu şekilde anlatabilmişimdir umarım :(

 

 

onnoajans onnoajans WM Aracı Kullanıcı
  • Üyelik 13.03.2019
  • Yaş/Cinsiyet 34 / E
  • Meslek Pc programcılığı
  • Konum Muğla
  • Ad Soyad G** E**
  • Mesajlar 61
  • Beğeniler 2 / 13
  • Ticaret 1, (%100)
Demek istediğiniz mesajı gonderen kişilerin son mesajını ismin altında çıkmasını istiyorsunuz ve güncellensin istiyorsunuz sanırım doğrumu anladım. Ve sıralamada buna göre değişecek muhtemelen ??

mehmet
mesaj
-----------

ahmet
mesaj
-------

ayşe
mesaj
--------
 

 

http://www.onnoajans.com
wmaraci
wmaraci

thepurge thepurge WM Aracı Kullanıcı
  • Üyelik 26.11.2019
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** Ç**
  • Mesajlar 217
  • Beğeniler 30 / 25
  • Ticaret 5, (%100)
onnoajans aynen böyle hocam aynı kullanici id sinden gelen veri tekrar tekrar ekranda alt alta döngü yaratsın istemiyorum mesela ben de şuan mehmet adlı kişi

10 tane mesaj atsın

böyle oluyor ben böyle olsun değil mehmet mesaj attığında 1 kere görünsün ondan sonra ne kadar mesaj atarsa atsın tek mehmet görünsün istiyorum sonra ayşe atarsa altında ayşe mesaj olarak yazsın anlatabildim mi bilmiyorum ama

mehmet
mesaj
--------
mehmet
mesaj
--------
mehmet
mesaj
--------
mehmet
mesaj
--------
mehmet
mesaj
--------
mehmet
mesaj
--------
 

 

onnoajans onnoajans WM Aracı Kullanıcı
  • Üyelik 13.03.2019
  • Yaş/Cinsiyet 34 / E
  • Meslek Pc programcılığı
  • Konum Muğla
  • Ad Soyad G** E**
  • Mesajlar 61
  • Beğeniler 2 / 13
  • Ticaret 1, (%100)
bu kodu denermisin...

Aynı veriyi birden fazla göstermemek için group by kullanırız mesaj_id sürekli değişeceği için gonderilen id kullandık

yani mesajı gönderen kişinin id si 2 olsun ve gelen kutusundaki mesajların 6 sını id si 2 olan kişi gönderdi diyelim sadece en sondakini gösterecek


$mesajlar=$db->prepare("SELECT gonderilen_id from mesaj where gonderilen_id=:kullanici_id group by gonderilen_id DESC ");
$mesajlar->execute(array(
'kullanici_id' => $kullanicicek['kullanici_id']
));

while($mesaj=$mesajlar->fetch(PDO::FETCH_ASSOC)){
thepurge

kişi bu mesajı beğendi.

http://www.onnoajans.com

thepurge thepurge WM Aracı Kullanıcı
  • Üyelik 26.11.2019
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** Ç**
  • Mesajlar 217
  • Beğeniler 30 / 25
  • Ticaret 5, (%100)
onnoajans supersin hocam bunu nasıl düşnümedim

$mesajlar=$db->prepare("SELECT * from mesaj where gonderilen_id=:kullanici_id group by gonderen_id order by mesaj_id DESC ");


bu şekilde yapınca düzeldi
 

 

onnoajans onnoajans WM Aracı Kullanıcı
  • Üyelik 13.03.2019
  • Yaş/Cinsiyet 34 / E
  • Meslek Pc programcılığı
  • Konum Muğla
  • Ad Soyad G** E**
  • Mesajlar 61
  • Beğeniler 2 / 13
  • Ticaret 1, (%100)
Rica ederim . Kodları test edemediğim için gelişi güzel yazdım.

Düzelmesine sevindim kalın sağlıcakla
thepurge

kişi bu mesajı beğendi.

http://www.onnoajans.com
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