Ben bir çok tablo yapısı çok ve onay kutusu formları güncellenmesi var.
Amaç users_project tablo ile projeler masaya kullanıcıların tabloyu ilişkilendirmek olduğunu. Bu şekilde orada proje başına pek çok kullanıcı ve kullanıcı başına birçok projeler olabilir.
Form her kullanıcı düzenleme sayfasında böyle bir şey bakmak olurdu
<form action="#" method="post">
<div>
<input type="checkbox" name="project_id[]" id="1" value="1">
<label for="1">project 1</label>
<br>
<input type="checkbox" name="project_id[]" id="2" value="2">
<label for="2">project 2</label>
<br>
<input type="hidden" name="editing">
<input type="submit" id="submit" value="submit">
</div>
</form>
Here are examples of the three tables.
kullanıcıların tablo
+----+-----------+
| id ¦ username ¦
+----+-----------+
| 1 ¦ user 1 ¦
| 2 ¦ user 2 ¦
+----+-----------+
projeler tablo
+----+-----------+
¦ id ¦ title ¦
+----+-----------+
| 1 ¦ project 1 ¦
| 2 ¦ project 2 ¦
+----+-----------+
user_projeler tablo
this table relates the two above tables based on their id
+----+-------------+---------+
| id ¦ project_id ¦ user_id |
+----+-------------+---------+
| 1 ¦ 1 ¦ 2 |
| 2 ¦ 2 ¦ 1 |
+----+-------------+---------+
I have made a checkbox form to add and edit these values. On each user page it displays all of the projects in the projects table. Then queries the user_projeler tabloand finds a list of matches to add checks to the checkboxes.
Ama nasıl veritabanına bu değerleri düzenlerim? Bir kullanıcı önceden kontrol kutusu işaretlenmemiş veya project_id ve user_id için kullanıcıların masada bir maç için bir sorgu olmadan döngü veritabanına boş bir kutu ve güncelleştirme kontrol olup olmadığını nasıl anlayacağım?
İşte sonuç elde etmek istiyorum ne kaba bir kavramdır.
if ($_POST['editing']) {
$totalprojects = $_POST['editing'];
$query = "
SELECT *
FROM user_projects
WHERE user_id = user_id
AND project_id = project_id
";
$result = $mysqli->query($query);
$count = $mysqli->affected_rows;
for($i=0; $i < $totalprojects; $i++) {
if ($count == 1) {
if ($box == checked){
//do nothing
}
else {
//delete from database
}
}
if ($count == 0) {
if ($box == checked){
//add to database
}
else {
//do nothing
}
}
}
}
This just doesn't seem like a good idea at all Ben proje tablodaki her proje için en az bir kez veritabanını sorgulamak gerekir beri. Ben ortak bir sorun olmasını hayal için daha iyi bir çözüm olmalı. Ben sadece bu konuda yanlış şekilde düşünüyorum biliyorum.
NOT: Ben sadece bir dizi seri hale ve kullanıcı sütununda anlaşmazlık düşündüm, ama ben proje ve amacı yenmek için kullanıcıya sadece kullanıcı için proje ilişkilendirmek mümkün olmaz çünkü bu kabul edilebilir değildir.
Bu herhangi bir javascript kandırmaca olmadan uygulanacak istiyorum.