lostyazilim

Php Link Oluşturma

7 Mesajlar 3.394 Okunma
lstbozum
wmaraci reklam

PrestijSolution PrestijSolution SEO and DEVELOPER Kullanıcı
  • Üyelik 03.09.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Seo ve Web Tasarım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad M** G**
  • Mesajlar 606
  • Beğeniler 30 / 139
  • Ticaret 29, (%93)
Merhaba arkadaşlar.Php'de kendımı geliştirmeye çalışıyorum.Şöyle bir sıkıntım var.Ben haber ekleme sistemi yazdım.Bu sistemdeki haber başlıklarını çekiyorum veritabanından.sorum şu; bu başlıklara link vermek istiyorum ve ilgili içeriklere gitsın istiyorum.Ben bu veritabanından çekilen başlıklar için linki nası üreticem ?
ozcan0110

kişi bu mesajı beğendi.

www.mucahitguner.com
wmaraci
reklam

tiwaly tiwaly NodeJS / PHP / NoSQL Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad i** A**
  • Mesajlar 363
  • Beğeniler 135 / 104
  • Ticaret 7, (%100)
Mantık olarak anlatmaya çalışayım. Eğer takılırsan kodlama konusunda da yardımcı olurum.
İlk olarak bir adet haber görüntüleme sayfan olması gerekir. Bunun amacı php ile bağlantı kurup istediğin haberin veritabanından çekilerek kullanıcıya gözükmesini sağlamaktır.

Yani sen veritabanına gidiceksin ve diyeceksin ki "Bana haberi ver" oda "Al kardeşim" diyecek ve bunu sayfaya bastırıcaksın. Burada önemli olan husus şu eğer sen veritabanına giderken bir belirteç kullanmazsan veritabanı sana tüm sayfaları getirir "Al ne yaparsan yap" der :)
Bu sebeple senin "Ben şu numaralı sayfayı istiyorum" yada "Ben şu isimli haberin içeriklerini istiyorum" demen gerekli. Bunun için haberlerin yayınlanacağı php sayfasına hangi haberin veritabanından getirileceğini belirten bir veri göndermen gerekli. Bunun için php de 2 adet kullanım var. GET ve POST methodları. Sen burada GET methodunu kullanmalısın.

Get methodu ile veriyi şu şekilde gönderirsin www.siteismi.com/habersayfasi.php?degiskenismi=degiskenveri

Bu yukarıdaki gibi bir linke tıklandığında habersayfasi.php adresinde $_GET["degiskenismi"] seklinde bir degiskenveri yi taşımış olursun. Daha sonra bu veri yardımı ile veritabanından sorgu yapıp dilediğin haberi kullanıcıya gösterirsin. Burada sayfaya göndereceğin veri sayı,haberadı yada farklı birşey olabilir. Dikkat etmen gereken nokta bu verinin tüm haberler için özel olması yani tekrarlanmamasıdır. Bunun için genellikle veritabanına kayıt eklerken ID sütunu koyarız. IDler sıralı olarak gittiklerinden her satırın ID si farklıdır.

Koddan ziyade mantık olarak anlatmaya çalıştım. Kafana takılan yerleri sorabilirsin.

Ek Olarak: Link Üretme

id - baslik - haber
şeklinde bir tablon olduğunu varsayalim. Tablomuzun adida haberler olsun.
Link üretmeyi şu şekilde yapıcaksın:
(Veritabanına bağlandın ve döngü içerisinde gelen verileri yazdırabildiğini varsayıyorum. Aşağıdaki kullanış biçimi farklılık gösterebilir.)


while($gelen = mysql_fetch_array($query)){
echo ''.$gelen["baslik"].'';
}


Bu şekilde tüm haber başlıkların kendi idleri ile habersayfasi.php adresine linklenmiş oluyor. Bundan sonrası habersayfasi.php adresinde GET methodu ile gelen veriyi alıp uygun şekilde veritabanından çekip kullanıcıya yansıtmaya kalıyor.
 

 

PrestijSolution PrestijSolution SEO and DEVELOPER Kullanıcı
  • Üyelik 03.09.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Seo ve Web Tasarım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad M** G**
  • Mesajlar 606
  • Beğeniler 30 / 139
  • Ticaret 29, (%93)
hocam anlatım için çok teşekkür ederim.mantığını kavradım ama ne şekilde kullanacağımı bilmiyorum.aşağıda yazdığım kodlar.yardımcı olur musunuz ?

Haberlerin listelendiği sayfada kullandığım kod:

$sorgu2=mysql_query("select * from haberler");
if (mysql_num_rows($sorgu2)){
echo '';
while($kayit=mysql_fetch_array($sorgu2)){
$id=$_GET["id"];

echo "" . $kayit["haberbaslik"] . "" ;
echo $kayit["habericerik"];

}
}
?>

Verileri kayddettiğim kaydet.php sayfam.

$haberbaslik= $_POST ['haberbaslik'];
$habericerik= $_POST ['habericerik'];


$sorgu=mysql_query("insert into haberler (haberbaslik,habericerik) values ('$haberbaslik','$habericerik')");

if($sorgu){
echo 'Kayıt Eklendi.';
}else{
echo 'Kayıt Eklenemedi!';
}

Bu form kodlarım.













bu da bağlan dosyam.

$baglanti=mysql_connect("localhost","root","") or die("Mysql'e bağlantı kurulamadı!") ;
mysql_select_db("deneme",$baglanti) or die("Veritabanına bağlantı kurulamadı!");
mysql_query("Set names 'latin5'");
mysql_query("set character set latin5");
mysql_query("set collation_connection= 'latin5_turkish_ci'");
?>
 

 

www.mucahitguner.com

tiwaly tiwaly NodeJS / PHP / NoSQL Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad i** A**
  • Mesajlar 363
  • Beğeniler 135 / 104
  • Ticaret 7, (%100)
Listelemede $_GET kullanmaman gerekli. Tablondaki sütunları söyleyebilir misin?
 

 

wmaraci
wmaraci

PrestijSolution PrestijSolution SEO and DEVELOPER Kullanıcı
  • Üyelik 03.09.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Seo ve Web Tasarım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad M** G**
  • Mesajlar 606
  • Beğeniler 30 / 139
  • Ticaret 29, (%93)
tablomdaki sutünlar.

id , haberbaslik , habericerik.

o get i belki link oluşur diye ekledım :D silmeyi unutmuşum.

birde şöyle bişey car hocam.bendeki id sütununda hepsi 0 yazıyor. 1, 2 3 diye sıralanmıyor yanı.tüm başlıklarının yanında 0 yazıyor.
 

 

www.mucahitguner.com

tiwaly tiwaly NodeJS / PHP / NoSQL Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad i** A**
  • Mesajlar 363
  • Beğeniler 135 / 104
  • Ticaret 7, (%100)
phpmyadmin kullanıyorsun değil mi ? O idlerin sıralı olması gerekli. Bunun için tabloya tıklayıp yukarıdaki structure a tıklamalısın. Oradan id olan yerin sağındaki change e bas ve A_I olanı işaretle. Type INT olmasına dikkat et.

Ek Olarak: Makale listeleme için:

$sorgu2=mysql_query("select * from haberler");
if (mysql_num_rows($sorgu2)){
while($kayit=mysql_fetch_array($sorgu2)){
echo ''.$kayit["haberbaslik"].'
';
}
}
?>








makale.php dosyan şu şekilde olmalı.
$id = $_GET["id"];
$sorgu=mysql_query("select * from haberler where id=".$id); //id ye göre veritabanından içeriği çektik
if (mysql_num_rows($sorgu2)){
while($kayit=mysql_fetch_array($sorgu2)){
echo $kayit["habericerik"];

}
}
?>
 

 

PrestijSolution PrestijSolution SEO and DEVELOPER Kullanıcı
  • Üyelik 03.09.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Seo ve Web Tasarım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad M** G**
  • Mesajlar 606
  • Beğeniler 30 / 139
  • Ticaret 29, (%93)
Hocam sayenizde yaptım, teşekkür ederim.
 

 

www.mucahitguner.com
wmaraci
Konuyu toplam 6 kişi okuyor. (0 kullanıcı ve 6 misafir)