آفلاین
user-avatar

تابع بازگشتی برای رسیدن از فرزند به والد

PHP -
2 سال پیش
توسط نیما نوری آپدیت شد
آفلاین
user-avatar
Mohammad.H ( 566 تجربه )
2 سال پیش

سلام.برای رسیدن به والد یک دسته بندی که آیدیش رو داریم از این تابع بازگشتی استفاده میکنم ولی کوئری همش داخلش تکرار میشه.یه روشی میخوام که کوئری یکبار بیرون از تابع زده بشه و آرایه رو بعنوان ورودی به تابع پاس بدم و با لوپ کردن همین نتیجه ای که این تابع موجود بهم میده رو بده.
لطفا اگر راهی هست با من در اشتراک بزارید...ممنون

function get_most_root_of_any_id($id=NULL){

    global $conn;

    if($id==NULL){
        return false;
    }

    $result = mysqli_query($conn,"SELECT * FROM recursive_function WHERE id=".$id);

    $record = mysqli_fetch_assoc($result);

    if(!isset($record)){
        return false;
    }

    if($record['parent_id']==0){
        return $record['name'];
    }else{
        return get_most_root_of_any_id($record['parent_id']);
    }
}
آفلاین
user-avatar
نیما نوری ( 1520 تجربه )
2 سال پیش

سلام .
ببینید ؛‌به نظر میاد در ساختار دیتابیس شما id یک مقدار auto inc هست . پس مقدارش برای هر سطر یک مقدار یکتاست . پس با این کوئری نمی تونید با یک درخواست همه موارد رو بگیرید .
مگر اینکه کوئری تون رو تغییر بدید و در قسمت آخر تابع به جای بازگشتی کردنش در یک لوپ for /while‌بذارید و انجام بده.
چون هیچ اطلاعاتی از ساختار دیتابیس شما ندارم نمی تونم بیشتر از این نظری بدم .

موفق باشید

برای ارسال پاسخ باید وارد سایت شوید