intval() dan geçmesinin sebebi -1'inde interger olması :)
bildiğim kadarıyla bunun için bir fonksiyon yok.
if(isset($_GET) && !empty($_GET)){ // GET ile gelen değer varsa
$query = [];
if(isset($_GET['page']) && !empty($_GET['page'])){ // GET ile key i page olan bir değer varsa
$query['page'] = $_GET['page'];
}
if(isset($_GET['question']) && !empty($_GET['question'])){ // GET ile key i question olan bir değer varsa
$query['question'] = $_GET['question'];
}
if(isset($_GET['category']) && !empty($_GET['category'])){ // GET ile key i category olan bir değer varsa
$query['category'] = $_GET['category'];
}
if(!empty($query)){
echo '?' . http_build_query($query);
}
}
link verdiğin kısma http_build_query den gelen parametreyi eklersin.
örnek olarak ?id=1 olan bir link vereceksen.
<a href="http://example.com/search?id=1&<?=http_build_query($query);?>">Link</a>
bunu bi fonsiyonda halledersin ben örnek olması açısından yazdım.
Senin aradığın fonksiyon bu https://www.php.net/manual/tr/function.http-build-query.php
$query = [
'page' => 2,
'question' => 'abc',
'category' => 'cloth'
];
echo '?' . http_build_query($query);
// Output: ?page=2&question=abc&category=cloth
Anlam veremedim ama parantez içerisine alınca bende sorun çıkmadı.
<div class="col-md-6">
<label class="form-check-label">Teklif Durumu :</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu" id="inlineRadio11" value="1" '. ($musterilerEdit['musteri_teklifStatu'] == 1 ? "checked" : "") .'/>
<label class="form-check-label" for="inlineRadio11">Teklif Verildi</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="teklif-durumu" id="inlineRadio22" value="2" '. ($musterilerEdit['musteri_teklifStatu'] == 2 ? "checked" : "") .'/>
<label class="form-check-label" for="inlineRadio22">Teklif Verilmedi</label>
</div>
</div>
. ile birleştirmek için string bir ifade olması lazım.
$html = '<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >';
echo $html;
eğer html olarak tırnaksız yazacaksan aşağıdaki gibi yap
<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" <?php echo $user['musteri_teklifStatu']== 1 ? 'checked' : ''; ?>/>
'<input class="form-check-input"
type="radio" name="teklif-durumu"
id="inlineRadio11" value="1" ' . $user['musteri_teklifStatu']== 1 ? 'checked' : '' . ' >'
function Tree($parent_id=0)
{
global $db;
$query = $db->prepare("SELECT `id`, `name`, `url`, `parent_id`, `sort_order` FROM `category` WHERE `parent_id` = :parent_id ORDER BY `parent_id`, `sort_order`, `name`");
$query->bindValue(':parent_id', $parent_id, PDO::PARAM_INT);
$query->execute();
$data = [];
if($query->rowCount() > 0)
{
while($category = $query->fetch(PDO::FETCH_ASSOC))
{
$sub = Tree($category["id"]);
$data[] = $category["id"];
if(!empty($sub)){
$data['sub_category'] = $sub;
}
}
}
return $data;
}
function Single($parent_id=0)
{
global $db;
$query = $db->prepare("SELECT `id`, `name`, `url`, `parent_id`, `sort_order` FROM `category` WHERE `parent_id` = :parent_id ORDER BY `parent_id`, `sort_order`, `name`");
$query->bindValue(':parent_id', $parent_id, PDO::PARAM_INT);
$query->execute();
$data = [];
if($query->rowCount() > 0)
{
while($category = $query->fetch(PDO::FETCH_ASSOC))
{
$data[] = $category["id"];
$sub = Single($category["id"]);
if(!empty($sub)){
array_push($data, ...$sub);
}
}
}
return $data;
}
// Örnek:
print_r(Tree(5));
/*
Output:
Array
(
[0] => 6
[sub_category] => Array
(
[0] => 15
[1] => 16
)
[1] => 7
[2] => 8
[3] => 9
)
*/
print_r(Single(5));
/*
Output:
Array
(
[0] => 6
[1] => 15
[2] => 16
[3] => 7
[4] => 8
[5] => 9
)
*/
Kendimce bişeyler yapmaya çalıştım umarım işinize yarar.
https://github.com/makifgokce/unlimited-category
Mysql de şu şekilde kontrol ettirebilirsin
SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP())-UNIX_TIMESTAMP("2020-12-03 09:50:00") > 3600 AS sonuc
Aradaki fark 3600 saniyeden(1 saat) fazla ise 1 değilse 0 olacaktır.