MinJ
MinJ

Reputation: 11

how do you store multiple rows and column array in mysql

I have an array of checkboxes.

<input type="checkbox" name="selection[]"  value="move" /> 
<input type="checkbox" name="selection[]"  value="move2" /> 
<input type="checkbox" name="selection[]"  value="move3" /> 
<input type="checkbox" name="selection[]"  value="move4" /> 

Depending on the number of checkboxes selected, a table with corresponding number of rows is generated.

for($x=0; $x<$N; $x++)
{
    echo nl2br("<td><textarea name=art[] rows=10 cols=30></textarea>   </td><td><textarea name=science[] rows=10 cols=30></textarea></td></textarea></td><td><textarea name=method[] rows=10 cols=30></textarea></td><td><textarea name=criteria[] rows=10 cols=30></textarea></td></tr>"); 
}

I cannot tell how many table rows with corresponding columns will be generated each time. So how to write the code to insert each set of row array is a problem. I have tried the

$optionsVal = implode(",", $data);

but that only works to store the selected options and not for the generated table rows and columns.Please can anyone help with this. Thanks in advance

Upvotes: 0

Views: 1408

Answers (1)

Hituptony
Hituptony

Reputation: 2860

Okay so I think I understand a little better, but perhaps you should relay your question in other terms.

Basically my understanding is that you are accepting an uncertain (within the boundaries of the number of checkboxes you have) number of checkboxes, which there in turn generate a row for each selected check box.

If you want to store these generated rows in mySQL you need to post the data back to the database

$result = mysqli_query($query, $conn);
$row = mysqli_fetch_array($result);

You need to set a $result similar to this, and store your check box values in it In this example if the end-user hits the save button it inserts the values from the check box into a variable

if(isset($_POST["savebtn"]))
{
    //inserting the new information
    $id = $_POST[""];
    $name = $_POST[""]; 



    //iterate through each checkbox selected

foreach($_POST["checkbox"] as $loc_id)
{
  $query = "INSERT INTO table(ID, Loc_Code) VALUES('$id', '$loc_id')";
  $result = mysqli_query($query, $conn);
}


?>

This was just kinda taken from another example, but you are way off with the implode, you need to save the results of the php selection to variables first, and then assign them rows in mySQL by looping through the selection

UPDATE:

Okay, so you got them in an array, seelction[] - this is good now you would want to check to see if a certain value is selected...

if (in_array("move2", $_POST['selection'])) { /* move2 was selected */}

then you want to put that into a single string - you were right with the implode method

echo implode("\n", $_POST['selection']);

then echo it out with a foreach loop

foreach ($_POST['selection'] as $selection) {
     echo "You selected: $selection <br>";
 }

Upvotes: 1

Related Questions