Sort Fonksiyonu aldığım hata
Merhaba arkadaşlar.
Sıralama/Sort Fonksiyonu işlemi yapıyorum fakat ilk işlem de olay sorunsuz çalışıyor işlem 0 dan büyük geldiğin de fonksiyon takrar çalıştığın da aşağıda bulunan hatayı alıyorum görsel de ki gibi
kodlar
operation.php
$categorySort = (!empty(htmlspecialchars($_POST['categorySort']))) ? htmlspecialchars($_POST['categorySort']) : 1;
$query = "select * from ortoped6_dernek.categories where categorySort=:categoryOrder";
$params = [['categoryOrder', $categorySort, PDO::PARAM_INT]];
echo $sort = sortControl($query, $params, $categorySort);
function.php
/**
* @param string $query
* @param array $params
* @param int $sort
* @param int $parent
* @return int
*/
function sortControl(string $query, array $params, int $sort, int $parent = 0): int
{
global $db;
global $result;
$querySort = $db->prepare("$query");
foreach ($params as $param) {
$querySort->bindParam($param[0], $param[1], $param[2]);
}
$querySort->execute();
$control = $querySort->rowCount();
if ($control > 0) {
$sorts = $sort+ 1;
sortControl($query, $params, $sorts);
} else {
$result = $sort;
}
return $result;
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
iki parantez kullanma sebebim ikinci bir paranms değeri de yollarsam diye örneğin
$params = [['categoryOrder', $categorySort, PDO::PARAM_INT],['categoryID', $categoryID, PDO::PARAM_INT]];
diyerek bir params daha atarsam onları alabilmek için
$params = [['categoryOrder', $categorySort, PDO::PARAM_INT]];
dış parantezleri kaldırırsan sorun çözülecektir.
foreach ($params as $param)
döngüye aldığın 1 derinlik var, o da params[0] çıktısıda şöyle;
0 => [ 0 => 'categoryOrder', 1 => '8', 2 => 1]
veya
foreach ($params[0] as $param)
yaparsan sorun çözülecektir.