Çoklu kategori filtreleme yapıyorsan benim çözümüm:
Sorunu şu şekilde çözdüm.
RewriteRule ^token/([-0-9a-zA-Z/%&%/%+]+)? token.php?token=$1 [L,QSA]
https://www.ornek.com/token/' . rawurlencode($token) . '
$token = rawurldecode($_GET['token']);
Yardımlarınız için teşekkürler
Kod yapınızı gösterirseniz tabi ki yardımcı oluruz ancak anlattığınıza bağlı olarak anlayamayız.
Sorun çözüldü yapı aşağıda ki şekilde arayan arkadaşlara yardımcı olur umarım;
$query = "SELECT DISTINCT products.* FROM products";
$arr = array(
0 =>
array(
'id' => '2',
"filter" => array("Kadın", "Erkek")
),
1 =>
array(
'id' => '1',
"filter" => array("Pembe","Mavi")
),
2 =>
array(
'id' => '3',
"filter" => array("3+", "6+")
)
);
for ($x = 1; $x <= count($arr); $x++) {
$join = ' JOIN product_filters AS f' . $x . ' ON f' . $x . '.product_id = products.id ';
$query .= $join;
}
$x = 1;
$query .= " WHERE ";
foreach ($arr as $key) {
foreach ($key["filter"] as $value) {
$val .= "'" . $value . "',";
}
$val = rtrim($val, ",");
if ($x == 1) {
$where = ' ((f' . $x . '.attribute_id = ' . $key["id"] . ' AND f' . $x . '.filter_id In (' . $val . ') ';
$query .= $where;
} else {
$where = ' and ((f' . $x . '.attribute_id = ' . $key["id"] . ' AND f' . $x . '.filter_id In (' . $val . ') ';
$query .= $where;
}
$val = "";
$x++;
}
for ($x = 0; $x - (count($arr) - 1) <= count($arr); $x++) {
$query .= ")";
}
print_r($query);
Anladım ama bu şekilde sağlıklı çalışma olmaz ve güvenli değil.Biraz araştırmanı tavsiye ederim.
PDO ile yazarsak sorunu çözülür mü bilmiyorum ama denemek lazım:
<?php
function guvenlikKapisi($data)
{
return htmlspecialchars($data);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['tip'])) {
$_POST = array_map('guvenlikKapisi', $_POST);
if ($_POST['tip'] == 'hediye') {
if (isset($_SESSION['oturum']) && $_SESSION['oturum']) {
$user_id = $_SESSION['oturum'];
$result = $db->prepare("select * from uyeler where id=:id");
$result->bindParam(':id', $user_id, PDO::PARAM_INT);
$result->execute();
$userCount = $result->rowCount();
if ((int)$userCount > 0) {
$userDate = $result->fetch(PDO::FETCH_ASSOC);
$fark = time() - strtotime($userDate['hediyetarih']);
if($fark >= 0){
$time = time();
$guncelle = $db->prepare("UPDATE uyeler SET bakiye=bakiye+:hediyelik,hediye=1,hediyetarih=:hediyetarih where id=:id");
$guncelle->bindParam(':hediyelik', $hediyelik, PDO::PARAM_INT);
$guncelle->bindParam(':hediyetarih', $time, PDO::PARAM_STR);
$guncelle->bindParam(':id', $user_id, PDO::PARAM_INT);
$guncelle->execute();
echo 'ok';
return;
}
else{
echo 'zaten';
return;
}
}
} else {
echo 'oturum';
return;
}
}
}
Burda saçma olan şu kayıt ettiğin son tarihi getirmiyorsun ve kontrol sağlamıyorsun.
Hediyeyi hangi tablodan nasıl çekiyor göstermediğin için uygulama yapmadım.
Düzeltme : Kodu düzenledim kontrol sağlamasını yapmakta.Geçmiş olsun :)
Route yapısını incelemeye başladım öneriniz için teşekkürler ancak bahsetmek istediğim :
Kullanıcı product.php sayfası açık ve url id parametresi 11 olan değeri 12 olarak değiştirdiği zaman sayfa tekrar yükleniyor ancak link yapısında ki ürün ismi hala 11 değerininin ürün ismi kalıyor.
Yapmak istediğim tam olarak kullanıcı id değerini değiştirdiği zaman idsine eşit olan ürün ismide urlde değişicek. Nasıl bir yol izlemeliyim?
Edit: Tayfun hocam route yapısı tüm haritamı çıkardı tekrardan teşekkür ederim.
toggleClass'ı öğrendim teşekkür ederim.Mobil tarafta red classını kaldırıyor ancak animasyon hala duruyor boş bir kısıma tıklandığında animasyon kayboluyor.Css tarafında sorun galiba.