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

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

لینک کوتاه اشتراک گذاری

0

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

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
نیما نوری ( 22486 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

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

موفق باشید

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.