Mohammad.H
6 سال پیش توسط Mohammad.H مطرح شد
1 پاسخ

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

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

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']);
    }
}

ثبت پرسش جدید
نیما نوری
@NimaN2D 6 سال پیش مطرح شد
0

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

موفق باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام