PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Tuesday, May 17, 2022

[FIXED] How to use return inside a recursive functions in php

 May 17, 2022     php, recursion     No comments   

Issue

Here is my question I am trying to create a random bar code for my application, I want to check if that code is already in the column than generate a new number, check it again if its unique return it to the caller else generate again. I am using a recursive function for this purpose. I have added number 1,2,3,4 inside my database so every time it runs it has to show me 5,6,7,8,9 or 10.

Here is my function:

function generate_barcode(){
    $barcode = rand(1,10);
    $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'"));
    if($bquery==1){
        generate_barcode();
    }else{
        return $barcode;    
    }
 }

And I just tested it like this

 $a = generate_barcode();
 if(isset($a))
 {
   echo $a;
 }
 else
 {
  echo 'Not Set';
 }  

So the problem is that its sometime showing me "Not Set", but I want it to always generate a unique number. I am not inserting the data so its not a problem that all the numbers are reserved.

Someone just guide me and let me know what is wrong with the code. I can use other approaches to do that but I need to know what is wrong with the supplied code. Thanks


Solution

You need to return the generated number from your recursive call too, like

function generate_barcode() {
  $barcode = rand(1, 10);
  $bquery = mysql_num_rows(mysql_query("SELECT * FROM stock_item WHERE barcode='$barcode'"));
  if ($bquery == 1) {
    return generate_barcode(); // changed!
  }
  else {
    return $barcode;
  }
}

(You should include some kind of exit for the case that all numbers are 'taken'. This current version will call itself recursively until the PHP recursion limit is reached and will then throw an error.)



Answered By - Carsten Massmann
Answer Checked By - Mary Flores (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing