Jump to content

Edit many-to-many relationship with checkbox


php2014

Recommended Posts

Hello all,

 

I'm working on a project where I have 3 tables :

- test

- category

- link_category_test

 

In test I have columns id, name. In category I have the columns id, name. In link_test_category I have columns test_id, category_id.

 

When I add an item to table test I can select which categories it will belong too. It can be multiple categories. The connection between those 2 tables is stored in link_test_category. That I get to work. But now I want to be able to edit the categories connected with an item, with checkboxes. This means I'll have a list of all categories and for the categories which are connected with the item, the checkboxes are checked. The rest is unchecked. As soon as I check them they should be added to the many to many relationship table link_test_category, if they are unchecked and before where checked I want them deleted. I have the following code for creating a new item :

 

 

new.php

 

<form method="post" action="new_add.php">

<table><tr><td>

<input name="name" id="name">

</td></tr></table>

 

<table>

<?php

$query=mysqli_query($conn, "select * from category") or die (mysqli_error($conn));

while($row=mysqli_fetch_array($query)){

   $category_id=$row[íd];

?>

<tr>

<td><input name="selector[]" type="checkbox" value="<php echo $category_id; ?>"></td>

<td><?php echo $row['name'] ?></td>

</tr>
<?php } ?>

</table>

 

<input name="save" type="submit" id="save">

</form>

 

 

 

new_add.php

 

<?php

$name = $_POST['name'];

 

sql = "INSERT INTO test (id, name) VALUES (NULL, '{$name}');";

$retval = mysqli_query($conn, $sql);

if(! $retval )

{

die('Could not enter data ' . mysqli_error($conn));

}

 

$insert_id = mysqli_insert_id($conn);

 

$id=$_post['selector'];

$N = count($id);

for($i=0; $i < $N; $i++)

{

$result = mysqli_query($conn, "SELECT * FROM category where id='$id[$i]'");

while($row = mysqli_fetch_array($result))

{

$sql = "INSERT INTO link_category_test (category_id, test_id) VALUES ('{ $insert_id}', '{$row['id']}');";

$retval = mysqli_query($conn, $sql);

if(! retval )

{

die('Could not enter data '. mysqli_error($conn));

}

}

}

?>

 

 

Edited by php2014
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.