1

Let me start by saying that I googled this and tried different things, but I'm still stuck and need some help as this is my first time trying out checkboxes with php... I have a section in my HTML file as follows

<label class="labelStyle" for="text">XXX:</label>
                        <div class="checkboxAlign">
                            <input type="checkbox" name="XX[]" value="Apple">Apple<br>
                            <input type="checkbox" name="XX[]" value="Orange">Orange<br>
                            <input type="checkbox" name="XX[]" value="Strawberry">Strawberry<br>
                        </div>

But I am having trouble with the PHP part of it as it's not adding the checked items to my database.

Try this

if (!empty($_POST['XX']))
{
    foreach($_POST['XX'] as $check)
    {
        if(!($stmt = $mysqli->prepare("INSERT INTO table
            id = (
                SELECT id
                FROM yy
                WHERE xx = ?)"))){  
            echo "Prepare failed: "  . $stmt->errno . " " . $stmt->error;
        }
         if(!($stmt->bind_param("s",  $_POST['XX'])))    { 
        echo "Bind failed: "  . $stmt->errno . " " . $stmt->error;
    }

    }
}

I know the issue is within this php snippet, but I'm not sure what I'm doing wrong. Any help would be appreciated.

Thanks!

4
  • WHERE FoodTriggerItem = ? is the syntax Commented Jul 8, 2017 at 12:24
  • @colburton I tried that too Commented Jul 8, 2017 at 12:24
  • @rose Try my answer Commented Jul 8, 2017 at 12:29
  • @ Praveen Kumar Thanks! Still doesn't work.... Commented Jul 8, 2017 at 12:30

2 Answers 2

2

Try this

if (!empty($_POST['XX']))
{
    foreach($_POST['XX'] as $check)
    {
        if(!($stmt = $mysqli->prepare("INSERT INTO table
            id = (
                SELECT id
                FROM yy
                WHERE xx = ?)"))){  //added ? in place of $check
            echo "Prepare failed: "  . $stmt->errno . " " . $stmt->error;
        }
        if(!($stmt->bind_param("s", $check)))    { // added $check in place of $_POST['XX']
            echo "Bind failed: "  . $stmt->errno . " " . $stmt->error;
        }


    }
}
Sign up to request clarification or add additional context in comments.

1 Comment

Actually this works! I just forgot to add something earlier... Thank you!!!
1

change

if(!($stmt->bind_param("s", $_POST['FoodTriggerItem'])))    {
                    echo "Bind failed: "  . $stmt->errno . " " . $stmt->error;
                }

TO

if(!($stmt->bind_param("s", $check)))    {
                    echo "Bind failed: "  . $stmt->errno . " " . $stmt->error;
                }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.