lostyazilim
tr.link

Farklı hosting'de çalışmayan MySQL sorgusu

5 Mesajlar 847 Okunma
lstbozum
tr.link

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Merhaba arkadaşlar,
Elimdeki bir siteyi güzelhosting'e taşıdım. Fakat taşıdıktan sonra mesajlarla ilgili bir sorgu istediğim gibi çalışmaz oldu. Önceki hosting'imin süresi daha dolmadı, orada denediğimde çalışıyor ama yeni hostingde çalışmıyor.

Bu yüzden sorunun yeni hosting tarafında olduğu kesin.
(Not: firmanın suçu değil tabi, yeni hosting derken benim taşımamdan kaynaklı olduğunu kast ediyorum tabi. Ya da sistem ayarının farklı olmasından)

Sorgu bu:

$uye_id = $_SESSION["uye_id"];

SELECT * FROM sohbet, (SELECT * FROM mesaj as m1 ORDER BY m1.msj_id DESC) AS m2
WHERE m2.msj_sohbet_id = sohbet.sohbet_id
AND (sohbet.uye1 = '$uye_id' or sohbet.uye2 = '$uye_id')
GROUP BY sohbet.sohbet_id ORDER BY m2.msj_id DESC


Kısaca yapmak istediğim şey şu;
Whatsapp veya facebookta olduğu gibi sohbet edilen kişilerin listesi var (sohbetler sayfası) ve bu sayfada her sohbete ait "son mesajı" gösteriyorum. Sohbete tıklayınca o sohbetle ilgili mesajlar listeleniyor detay sayfasında.
Ama gel gör ki sohbetlerde son mesajı gösteremiyorum. Ya ilk mesaj çıkıyor ya da ortalardan bir mesaj. Mesajları çekerken sorgu içinde sorgu yaparak msj_id numarasına göre DESC yaparak çekiyorum ama yine de olmuyor.

Sohbet tablosu;
sohbet_id, uye1, uye2

Mesaj tablosu;
msj_id, msj_gonderen, msj_alan, mesaj_detay, msj_sohbet_id, msj_tarih
 

 

wmaraci
reklam

ibars ibars WM Aracı Kullanıcı
  • Üyelik 01.03.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Freelance Web Developer
  • Konum Yalova
  • Ad Soyad A** A**
  • Mesajlar 59
  • Beğeniler 9 / 13
  • Ticaret 1, (%100)
SELECT * FROM sohbet INNER JOIN mesaj ON sohbet.sohbet_id = mesaj.msj_sohbet_id WHERE (sohbet.uye1 = '$uye_id' AND mesaj.msj_gonderen = '$uye_id') OR (sohbet.uye2 = '$uye_id' AND mesaj.msj_alan = '$uye_id') ORDER BY mesaj.msj_id DESC LIMIT 1

olarak deneyebilirsiniz.
mehmet01

kişi bu mesajı beğendi.

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Yalnız bu şekilde 1 tane sohbet listeler. Ben üye kaç kisiyle sohbet ettiyse hepsi listelensin ama her bir sohbetin en son mesajı görünsün istiyorum. Whatsapp sohbeti ele alalım. Sohbet kısmına girince Ahmet, Ali, Veli diye 3 kişiyle konuşmuşum, üçü alt alta listeleniyor ve her birinde en son hangi mesaj yazılmışsa o görünüyor. Bu sizin verdiğiniz kodda sadece en son sohbet ettiğim kişi görünür yani Ahmet. Ali ve Veli'nin mesajlarını göremem.
 

 

ibars ibars WM Aracı Kullanıcı
  • Üyelik 01.03.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Freelance Web Developer
  • Konum Yalova
  • Ad Soyad A** A**
  • Mesajlar 59
  • Beğeniler 9 / 13
  • Ticaret 1, (%100)
O zaman şu şekilde birşey yapabiliriz.



    $uye_id = $_SESSION["uye_id"];
    $sorguKonusmalar = $Veritabani->prepare("SELECT * FROM sohbet WHERE (uye1 = :uye_1) OR (uye2 = :uye_2)");
    $sorguKonusmalar->execute(array(":uye_1"=>$uye_id,":uye_2"=>$uye_id));
    while($yazKonusmalar = $sorguKonusmalar->fetch(PDO::FETCH_ASSOC))
    {
    if(($yazKonusmalar["uye1"] != $uye_id) && ($yazKonusmalar["uye2"] == $uye_id))
    {
    $uye = $yazKonusmalar["uye1"];
    }
    else if(($yazKonusmalar["uye1"] == $uye_id) && ($yazKonusmalar["uye2"] != $uye_id))
    {
    $uye = $yazKonusmalar["uye2"];
    }
    $sorguUyeler = $Veritabani->prepare("SELECT * FROM uyeler_tablo WHERE uye_id = :uye");
    $sorguUyeler->execute(array(":uye"=>$uye));
    while($yazUyeler = $sorguUyeler->fetch(PDO::FETCH_ASSOC))
    {
    $sorguMesajlar = $Veritabani->prepare("SELECT * FROM mesaj WHERE msj_sohbet_id = :sohbetid ORDER BY msj_id DESC");
    $sorguMesajlar->execute(array(":sohbetid"=>$yazKonusmalar["sohbet_id"]));
    $yazMesaj = $sorguMesajlar->fetch(PDO::FETCH_ASSOC);
    if($sorguMesajlar->rowCount() > 0)
    {
    echo "
  • Üye adı: ".$yazUyeler["uye_ad"]." / Son mesaj: ".$yazMesaj["mesaj_detay"]."
  • ";
    }
    else
    {
    echo "
  • Üye adı: ".$yazUyeler["uye_ad"]." / Son mesaj: Mesaj bulunamadı.
  • ";
    }
    }
    }
    ?>


 

 

wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
Sorguyu phpmyadminde girdiğinizde ne hata aldınız
 

 

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