-
Ü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.
}
}
-
Ü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:
-
Ü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. :)
-
Ü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...
-
Ü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
}
1 kişi bu mesajı beğendi.
-
Ü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 :) :)
1 kişi bu mesajı beğendi.