user2880093
user2880093

Reputation: 31

For loop gives Undefined variable

So I have five member-variables, but instead of writing:

if(isset($_POST['member1'])) {
    $member1 = mysqli_escape_string($mysqli, $_POST['member1']);
} else {
    $member1= '';
}

for all of the members (which gives no error), I want to do a for loop, but everytime I run the loop:

for($i = 1; $i <= 5; $i++) {
    if(isset($_POST['member . $i'])) {
            $member . $i = mysqli_escape_string($mysqli, $_POST['member . $i']);
        } else {
            $member . $i = '';
        }
}

I recieve this error:

Notice: Undefined variable: member

five times. What am I doing wrong?

Upvotes: 0

Views: 75

Answers (2)

Yaroslav
Yaroslav

Reputation: 2438

First of all it needs to be $_POST['member' . $i]

Than you trying to use variable $member to concatenate with it but it isn't exist.

Upvotes: 0

Amal Murali
Amal Murali

Reputation: 76646

I notice two errors in your code:

  • You're doing $_POST['member . $i'] -- variable values aren't interpolated when they're in single quotes. You should either use double-quotes, or concatenate them properly
  • You're trying to declare variables using $member . $i -- it wouldn't work either. You need to define them using the ${} syntax. For example: ${'member'. $i}

Try this:

for($i = 1; $i <= 5; $i++) {
    if(isset($_POST['member' . $i])) {
        ${'member'. $i} = mysqli_escape_string($mysqli, $_POST['member' . $i]);
    } else {
        ${'member'. $i} = '';
    }
}

Upvotes: 1

Related Questions