---
title: "Checkboxar och UPDATE"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/133639-checkboxar-och-update"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Melea"
published: "2005-09-04T18:16:40.000Z"
updated: "2005-09-05T10:19:20.000Z"
replies: 4
views: 443
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/133639-checkboxar-och-update"
---

# Checkboxar och UPDATE

## #1 — Melea, 2005-09-04T18:16Z

Tjenamors!

Har lite problem med ett nyhetsarkiv jag håller på att bygga.
På sidan har jag olika grupper, som det skrivs olika nyheter för.
När man skriver en nyhet loopas alla grupper ut med checkboxar, så man får fylla i till vilka nyheten ska skrivas. 
Detta löste jag med att döpa inputfältet till "group\[\]" och sedan spara det såhär i en enskild tabell

```php
INSERT INTO news ...

foreach ($_POST[group] as &$value) {
	mysql_query("
	INSERT INTO news_group (NewsID, GroupID)
	VALUES ($insert_id, $value)
	") or die(mysql_error());
}
```

So far, so good.

Men när jag nu ska fixa så man kan redigera en nyhet, vet jag inte riktigt hur jag ska gå till väga.
Eftersom jag ibland kan behöva ta bort nyheter från vissa grupper, och ibland lägga till, blir det problem.
Jag kan ju inte gärna skriva såhär:

```php
foreach ($_POST[group] as &$value) {
	mysql_query("
	INSERT INTO news_group (NewsID, GroupID)
	VALUES ($_POST[ID], $value)
	") or die(mysql_error());

	mysql_query("
	DELETE FROM news_group
	WHERE NewsID = $_POST[ID] AND GroupID = $value
	") or die(mysql_error());
}
```

Eftersom en DELETE-sats tydligen inte klarar av ett AND villkor.
Någon som har tips på hur jag ska lösa detta?

Tacksam för **alla** svar
MVH

Permalänk: https://www.webforum.nu/p/133639

## #2 — aasah, 2005-09-04T19:17Z

Jag har inte riktigt fattat vad dina grupper är och så, men... är $\_POST\[group\] verkligen en array? I så fall borde det nog stå:
$\_POST\["group"\] till att börja med i foreach.

Sedan:

```php
"INSERT INTO news_group (NewsID, GroupID)
	VALUES (".$_POST["ID"].", $value)"

"DELETE FROM news_group
WHERE NewsID = ".$_POST["ID"]." AND GroupID = $value"}
```

Har nog lite större chanser att funka som du vill. :)

Permalänk: https://www.webforum.nu/p/1665049

## #3 — Melea, 2005-09-04T21:34Z

Eftersom $\_POST\[ID\] endast innehåller en siffra är det inte nödvändigt.
Min kod genererar exakt samma sak som den du skrev. :)

Permalänk: https://www.webforum.nu/p/1665158

## #4 — Melea, 2005-09-05T07:57Z

Okej, nu har jag iallafall förstått var problemet ligger.
När jag kör foreach-loopen och kollar igenom alla $\_POST\[group\] så får den bara med alla värden jag kryssat i.
Så! Jag tänkte att jag kunde lösa det med en for($i = 1; $i \< 20; $i++) { loop, eftersom det är 20 grupper.
Men hur får jag med värdet då? Med foreach-loopen blir det ju $value.

Tack på förhand
MVH

Permalänk: https://www.webforum.nu/p/1665248

## #5 — Melea, 2005-09-05T10:19Z

Okej, har nu löst det. :)

```php
mysql_query("
DELETE FROM news_group
WHERE NewsID = $_POST[ID]
") or die(mysql_error());

if(count($_POST[group]) > 0) {
	foreach ($_POST[group] as $value) {

		mysql_query("
		INSERT INTO news_group (NewsID, GroupID)
		VALUES ($_POST[ID], $value)
		") or die(mysql_error());
	
	}
}
```

Permalänk: https://www.webforum.nu/p/1665291

---

Tråden på webben: https://www.webforum.nu/amne/php/133639-checkboxar-och-update
