---
title: "Uppdatera flera rader i sql-tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/166729-uppdatera-flera-rader-i-sql-tabell"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "überfuzz"
published: "2007-11-27T12:19:34.000Z"
updated: "2007-11-27T16:54:55.000Z"
replies: 2
views: 440
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/166729-uppdatera-flera-rader-i-sql-tabell"
---

# Uppdatera flera rader i sql-tabell

## #1 — überfuzz, 2007-11-27T12:19Z

Jag försöker uppdatera flera rader i en sql-tabell mha av checkbox i en \<form\>. Hittills verkar det som att jag får ut de värden jag vill ha ut ur sql-tabellen. Problemet är att jag inte kan få in det uppdaterade i tabellen. Se kommentarer i koden!

```php
<?php
$sql="SELECT * FROM resultat WHERE kontroll = 'unchecked' ORDER BY id ASC";
$result=mysql_query($sql);
 
$count=mysql_num_rows($result);
 
?>
<table>
<form method="post" action="page_id=60">
<tr>
<td>#</td><td><strong>Id</strong></td><td><strong>SäljarID</strong></td><td><strong>Telefonnummer</strong></td><td><strong>Klient</strong></td><td><strong>Produkt</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td><td><? echo $rows['id']; ?></td><td><? echo $rows['user']; ?></td><td><? echo $rows['telenr']; ?></td><td><? echo $rows['klient']; ?></td><td><? echo $rows['produkt']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="6"><input name="check" type="submit" value="Ok"></td>
</tr>
<?
// Här börjar jag få problem, kontroller av variabler ger dåligt resultat.
// $count verkar stämma, men arrayen checkbox är fel, check funkar inte heller verkar det som.
if($check){
for($i=0;$i<$count;$i++){
$update_id = $checkbox[$i];
$result = mysql_query("UPDATE resultat SET kontroll = 'ok!' WHERE kontroll = 'unchecked'") or die (mysql_error());
}
}
print_r($checkbox);
echo $count;
mysql_close();
?>
</form>
</table>
```

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

## #2 — Pedda, 2007-11-27T13:23Z

Vet inte vad du har för inställning i php.ini men ha för vana att alltid hantera GET och POST variabler på rätt sätt. Och starta alltid din php kod med \<?php istället för \<?.
Dvs $\_POST\['foo'\] och $\_GET\['foo'\], annars så är det inte säkert att dom får något värde beroende på hur konfigurationen ser ut.

Så byt ut

```php
if($check){
```

mot

```php
if(isset($_POST['check'])){
```

Sen när du loopar igenom din array så kan du ju inte veta att alla ($count) är icheckade så ändra din for-sats också.

```php
foreach ($_POST['checkbox'] as $c){
$result = mysql_query("UPDATE resultat SET kontroll = 'ok!' WHERE id = '$c'") or die (mysql_error());
}
```

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

## #3 — überfuzz, 2007-11-27T16:54Z

Tack för dina tips! Ändringarna du föreslog löste problemen. Den enda ändringen jag var tvungen att göra efter det var att kasta om lite i koden. Min första lösning krävde ju två klick på submit-knappen. Nu är allt löst tack vare dig.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/166729-uppdatera-flera-rader-i-sql-tabell
