lostyazilim
tr.link

GET metodu ve Mysql

6 Mesajlar 1.142 Okunma
acebozum
tr.link

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Merhabalar. Php ile bir "söz paylaşma sitesi" yapıyorum. Veritabanında kayıtlı olan sözleri rastgele çekiyorum ve sayfa.php yenilendikçe sayfadaki söz değişiyor.
Ayrıca her sözün bir linki de var. Sözü eklerken veritabanına rastgele 5 karakterlik idler kaydediliyor, bu id sözü de GET methoduyla sözün linkinde kullanıyorum.
Örneğin: sayfa.php?s=yr5q1

Bahsettiğim sistemin temel kod sistemi şu şekilde:
if($_GET["s"] boşsa yani sayfa.php?=s şeklindeyse yani bir id yazılmamışsa){
veritabanından rastgele bir söz çek ve sayfa.php?s=soz_id şeklinde linkle.
}else{
eğer boş değilse yani sayfa.php?s=yr5q1 şeklinde bir linkse problem yok. yr5q1 id'li sözü göster.
}

Genel yapı böyle. Basit. Ama benim asıl sorunum şu:
sayfa.php?s= şeklinde boş veriliyorsa rastgele bir sözü çekiyorum ve o sözü gösteriyorum ve sayfa.php?s=soz_id linkine yönlendiriyorum. Link boş değilse istenilen id'li söze yönlendiriyorum.
Ama link sallama bi şekilde ve hiç olmayan bir id girilirse (örneğin sayfa.php?s=dsadf) bunu nasıl kontrol edeceğimi bilmiyorum. Yardımlarınızı bekliyorum, iyi günler.

NOT
Şu şekilde yapabilirsek çok iyi olur:
if($_GET["s"] boşsa yani sayfa.php?=s şeklindeyse yani bir id yazılmamışsa){
veritabanından rastgele bir söz çek ve sayfa.php?s=soz_id şeklinde linkle.
}else{

if(soz id'si sallanmışsa ve bu id veritabanında kayıtlı olanlardan biri değilse){
işlem
}
else{
eğer boş değilse yani sayfa.php?s=yr5q1 şeklinde bir linkse problem yok. yr5q1 id'li sözü göster.
}

}
 

 

elektronikssl
webimgo

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 321
  • Ticaret 19, (%100)
Sanırsam, belirli bir id girildiyse bu veri, girilmediyse rastgele bir veri çekmek istiyorsunuz?

O halde,
if( empty($_GET["s"]) ) // Gelen, "s" adlı GET değeri boş ise
{
// rastgele 1 veri
$veri = mysql_query("SELECT * FROM tabloadı ORDER BY RAND() LIMIT 1");
} else { // id belirlendiyse
// veri çekme işleminiz
$id = $_GET["s"];
$veri = mysql_query("SELECT * FROM tabloadı WHERE sütunAdı = '{$id}'");
}

// veri listeleme işlemleriniz vs


Umarım doğru anlamışımdır.. Kolay gelsin :rolleyes:
 

 

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Sanırım istediğim şey bu değil... Şöyle açıklayayım:
Örneğin bir söz var. Sözün paylaşıldığı sayfanın linki: sayfa.php?s=MG1pI
Ama bir ziyaretçi bu MG1pI kısmını sildi ve kafasına göre "fdsfdsfds" şeklinde bir şeyle değiştirdi.
Bu fdsfdsfds kısmı veritabanında olmayan bir id olduğu için otomatik olarak boş sayfa çıkacak. Ama ben istiyorum ki boş sayfa çıkmasın ve "Aradığınız söz veritabanında kayıtlı değil" gibi bir ifade çıksın. Yani bunu kontrol edebileyim istiyorum. :)
 

 

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)

if(empty($_GET['s'])){ eğer GET ile gelen değer boşsa
$goster = mysql_query("select * from sozler group by rand() limit 1");

while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];
header("Location: soz.php?s=$soz_idyaz");
echo 'söz burada yer alacak';
}
}
else{ değer boş değilse
$s = $_GET['s'];
$goster = mysql_query("select * from sozler WHERE soz_id='$s'");
while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];

echo 'söz burada yer alacak';
}

}

}


Gördüğünüz gibi sadece değerin boş olduğu ve boş olmadığı ihtimalleri kontrol edebiliyorum. Eğer link sayfa.php?s=fdsfsd gibi kafadan sallanmışsa bunu nasıl kontrol edeceğimi bilemiyorum...
 

 

wmaraci
wmaraci

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 321
  • Ticaret 19, (%100)
O zaman çözüm daha basit :) Direk şöyle ki ;

$kontrol = mysql_num_rows(mysql_query("select * from sozler WHERE soz_id='$s'"));

if( $kontrol > 0 )
{
// veri bulundu, işlemler
} else {
// böyle bir veri yok
// yönlendirme vs
}
alfacan

kişi bu mesajı beğendi.

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Size çok teşekkür ederim :) :)
ikodev

kişi bu mesajı beğendi.

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