Merhaba arkadaşlar ben bir sosyal network projesi üzerinde çalışıyorum. Proje facebook tarzı bir sosyal paylaşım sitesi. Geliştirmeye çalıştığım nokta ise her kullanıcı facebook 'daki gibi kendisine ait bir grup oluşturması kısmı.

Kullanıcı grubunu oluştururken grup adı ve group açıklaması giriyor. bilgileri girdikten sonra group oluştur butonuna tıkladığında açtığı grubun sayfasına yönleniyor. Bu sayfada ise grubu oluştururken girdiği grup adı ve grup açıklaması görünüyor.

Kendisine ait grup oluşturan bir kullanıcı düşünelim. Bu kullanıcı grubunun adını btsoru verdi grup açıklaması kısmına da soru sorun dedi.

Diğer kullanıcılar bu grup sayfasını gördüklerinde eğer kendi grupları varsa grup açıklamasında kendi grup açıklamalarını görüyorlar.

Örneğin A kullanıcısının grup açıklaması kısmında : xxx yazıyor.
B kullanıcısının grup açıklamasında ise : yyy yazıyor.

A kullanıcısı B kullanıcısının grub sayfasını ziyaret ettiğinde kendi grup açıklamasını görüyor yani xxx görüyor. Tabi aynı zamanda B kullanıcısı A kullanıcısının grubunu ziyaret ettiğinde grup açıklamasında yyy görüyor.

Grup bilgilerini email ile veritabanından çektiriyorum. A kullanıcısının email adresi xxx@hotmail.com olsun B kullanıcısını email adresi de yyy@hotmail.com olsun her iki kullanıcıda grup oluşturduklarında grup tabloasundaki email kısmına bu kullanıcıların email adresleri atanıyor ve veriler ekrana yazdırılırken emaillere göre yazdırılıyor.

bilgileri ekrana yazdırmak için şu kodlamayı kullanıyorum. Buradaki yanlışım nerede acaba yardımcı olabilirmisiniz ?

<?php 
         $cek = mysql_query("SELECT * FROM blog_inf"); 
         $goster = mysql_fetch_array($cek); 
         extract($goster); 
         $uid = "{$uemail}";     
         $aciklama = mysql_query("SELECT * From blog_inf WHERE uemail = '$uemail'"); 
         $aciklamagoster = mysql_fetch_array($aciklama); 
         extract($aciklamagoster); 
         echo "{$blog_aciklamasi}";  ?>

soruldu: 12 Haz '14, 18:48

Cosmos's gravatar image

Cosmos
3016714
cevap kabul oranı: 100%


Soruyu sorarken varsa aldığınız hatayı veya aldığınız sonucu da eklerseniz daha iyi olur.

$aciklama = mysql_query("SELECT * From blog_inf WHERE uemail = '$uemail'");

bu satırda sql sorgusunda uemail = '$uemail' şeklinde yazdığınız koşulda değişken değil yazdığınız $uemail ifadesi string şeklinde algılanıyor olabilir. Şu şekilde yapıp tekrar deneyin:

$aciklama = mysql_query("SELECT * From blog_inf WHERE uemail = " . $uemail);
permanent link

cevaplandı: 12 Haz '14, 19:23

mews's gravatar image

mews
5753714
cevap kabul oranı: 20%

Değişen bişey olmadı. Aldığım sonucu soru içerisinde açıklamıştım. Örneğin A kullanıcısının grup açıklaması kısmında : xxx yazıyor. B kullanıcısının grup açıklamasında ise : yyy yazıyor.

A kullanıcısı B kullanıcısının grub sayfasını ziyaret ettiğinde kendi grup açıklamasını görüyor yani xxx görüyor. Tabi aynı zamanda B kullanıcısı A kullanıcısının grubunu ziyaret ettiğinde grup açıklamasında yyy görüyor.

(13 Haz '14, 07:02) Cosmos Cosmos's gravatar image

$uemail değeri, aktif olan kullanıcının eposta adresi ise bu şekilde görmeniz normal. $uemail değişkeni yerine görüntülenen grubun sahibine ait eposta adresini yazarak/yazdırarak deneyin. Ayrıca burada eposta kullanmak yerine gruba ait ID üzerinden işlem yaptırmanız daha mantıklı olacaktır.

(13 Haz '14, 07:07) mews mews's gravatar image

Zaten bunu deniyorum News kardeş. Grubu oluştururken grup tablasouna grubu oluşturan kişinin eposta adresi aktarılıyo. Bende verileri grubu oluşturan kişinin email adresine göre ekrana yazdırmaya çalışıyorum. Ekrana yazdırmada sıkıntı yok ama başka bir grubunun sayfasına gittiğimde tüm grup bilgileri benim grup bilgilerim oluyo.

(13 Haz '14, 08:04) Cosmos Cosmos's gravatar image

Tarayıcı ile o gruba gidildiğinde adres satırında gruba ait id veya isim/slug adres satırından query string ile alınıp grup bilgilerini bu anahtara göre çekmeyi deneyin. Yazmış olduğunuz kodda blog_inf tablosundan çekilen veri için herhangi bir kriter belirtilmemiş.

$cek = mysql_query("SELECT * FROM blog_inf");

Bu sql sorgusunda gruba ait id'ye göre işlem yaptırmanız gerekmiyor mu? Bu sorguda tablodaki ilk veri çekiliyor olmalı. Yani diyelim ki grubun sayfa adresi şu: www.example.com/grup.php?id=2014

Bu durumda sql sorgumuz şu şekilde olmalı:

$grupID = $_GET['id'];
// query string ile aldığınız verilerin güvenlik önlemlerini (xss filter v.s.) aldığınızı varsayıyorum
$cek = mysql_query("SELECT * FROM blog_inf WHERE id = " . $grupID);

Veritabanı yapınızı bilemediğim için başka da yorum yapamayacağım :)

permanent link

cevaplandı: 13 Haz '14, 16:01

mews's gravatar image

mews
5753714
cevap kabul oranı: 20%

Evet doğru tablodaki ilk veri çekiliyor. Grubun sayfa adresi şu şekilde gösteriliyo: www.example.com/blog/grubunadı databasedeki tablolar şu şekilde users,blog_inf,blog_users. users tabloasunda uid,username,email,password.... blog_inf tablosunda id,blog_adi,blog_aciklamasi,uid,bid,uemail. blog_users tablosu ise şöle blog_id,blog_name,uid,uemail söylediğinizi yaptım ancak bir sürü hata ile karşılaşıyorum.

(13 Haz '14, 16:21) Cosmos Cosmos's gravatar image

Muharrem kardeş 3 gündür üzerinde çalışıyorum ama gerçekten basit olan bu olayı bir türlü beceremedim ve proje burada kaldı ilerlemiyo :(

(13 Haz '14, 16:24) Cosmos Cosmos's gravatar image

Şimdi adres satirindan grup adını alarak tabloda eslestirecegimiz alan hangisi? Önceki örnekte verdiğim şekilde where kısmından sonra o eslestirmeyi yapmanız gerek. Aldığınız hata ciktisini eklerseniz sorunu cozebilecegimizi düşünüyorum.

(13 Haz '14, 16:55) mews mews's gravatar image

Notice: Undefined variable: bid in /Applications/MAMP/htdocs/blog.php on line 11

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/blog.php on line 12

Warning: extract() expects parameter 1 to be array, null given in /Applications/MAMP/htdocs/blog.php on line 13

(13 Haz '14, 17:01) Cosmos Cosmos's gravatar image

Notice: Undefined variable: uemail in /Applications/MAMP/htdocs/blog.php on line 14

Notice: Undefined variable: uemail in /Applications/MAMP/htdocs/blog.php on line 15

Warning: extract() expects parameter 1 to be array, boolean given in /Applications/MAMP/htdocs/blog.php on line 17

Notice: Undefined variable: blog_aciklamasi in /Applications/MAMP/htdocs/blog.php on line 18

(13 Haz '14, 17:02) Cosmos Cosmos's gravatar image

Hatalar bu şekilde www.facebook.com/shadowman86 Muharrem hocam bu benim adresim eklerseniz sevinirim.

(13 Haz '14, 17:03) Cosmos Cosmos's gravatar image

Facebook hesabım olsa da aktif şekilde kullanmıyorum. Hem buradan cevaplayalım ki benzer sorunla karşılaşanlar da faydalansın :)

Ayrıca yukarıdaki hatada bid isminde tanımsız bir değişkeni sorgu içerisinde kullandığınız için hata alıyorsunuz.

Notice: Undefined variable: bid in /Applications/MAMP/htdocs/blog.php on line 11

(13 Haz '14, 17:22) mews mews's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster

www.example.com/blog/grubunadı URL parser işlemini nasıl gerçekleştirdiğinizi bilmediğim için bu adreste /grubunadı kısmını bir değişkene get ile aldığınızı farz ediyorum. Ayrıca burada iki adet sorguya gerek yok, tek sorguda o gruba ait bilgileri alabilirsiniz.

<?php
$blogAdi = $_GET['blog_adi']; 
$cek = mysql_query("SELECT * FROM blog_inf WHERE blog_adi = " . $blogAdi); 
if ($cek)
{
    $goster = mysql_fetch_array($cek); 
    extract($goster);
}
else
{
    echo '<p>Grup bulunamadı!</p>';
}
?>

Zaten bu gruba ait bilgileri bu sorguyla alabileceksiniz, $aciklama sorgusuna gerek yok. Ayrıca sorgu sonucunu extract ile değişkenlere ayrıştırmayın. Bunun yerine $goster isimli diziden değerlerin indislerini girerek yazdırın ($goster['blog_adi'] gibi...), kod bakımı bu şekilde zorlaşır ve değişken isimlerinde çakışma yaşayabilirsiniz.

permanent link

cevaplandı: 13 Haz '14, 17:15

mews's gravatar image

mews
5753714
cevap kabul oranı: 20%

değiştirildi: 13 Haz '14, 17:18

Yardımların için teşekkür ederim News hocam. Anladığım kadarıyla şifrelemeyi tekrar baştan yapmam gerekiyor. ve database tablasounuda yeniden düzenlicem. Bana bir öneride bulunabilirmisiniz peki ? Kullanıcıların facebook daki gibi grup oluşturmasını istiyorum. Bunun için database'de kaç tabloya ihtiyacım olacak ? tablodaki verileri nasıl değerlendirmem gerekiyor. users tablomda uid,username,email,password,profilephoto ... gibi değerler var. databasede kullanıcıların grup tablolarına uid ile mi ilişkilendirmeliyim yoksa email ile mi ilişkilendirmeliyim. Beni bu konuda aydınlatabilirmisiniz.

(13 Haz '14, 17:55) Cosmos Cosmos's gravatar image

E-posta ile ilişkilendirmek yerine kullanıcı id'si ile ilişkilendirmen daha mantıklı. Grup tablon şu şekilde olabilir:

id, kullanici_id, baslik, baslik_slug, hakkinda, ...

id autoincrement, baslik_slug alanı da unique ve basliğin url'ye uygun düzenlenmiş halini haydetmeli. Grubun adı "Btsoru grubu" ise baslik_slug alanını "btsoru-grubu" şeklinde kaydettirirsin. www.example.com/blog/btsoru-grubu şeklinde grup sayfasına ulaştığında btsoru-grubu kısmını baslik_slug ile sorgulatırsın. Grup tablosunda kullanici_id kayıtlı olduğundan başka bir sorguyla kullanıcı e-posta adresine de ulaşabilirsin.

(13 Haz '14, 18:57) mews mews's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×144

Soruldu: 12 Haz '14, 18:48

Görüntüleme: 999 kez

Son güncelleme: 13 Haz '14, 18:57

powered by BitNami OSQA