---
title: "Tom rad skapas i mysql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/173858-tom-rad-skapas-i-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Guldstrand"
published: "2008-09-05T02:56:32.000Z"
updated: "2008-09-05T13:44:54.000Z"
replies: 4
views: 492
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/databaser-sql/173858-tom-rad-skapas-i-mysql"
---

# Tom rad skapas i mysql

## #1 — Guldstrand, 2008-09-05T02:56Z

Jag använder följande kod för att spara data till mysql:

```php
<?php 

ob_start("ob_gzhandler");

include("mysql.php");

if(isset($_POST['submit']))
{

$namn = htmlspecialchars($_POST['namn']);
$fodd = htmlspecialchars($_POST['fodd']);

for($i = 0; $i < count($namn); $i++) 
{ 
  $values[] = sprintf("('%s', '%s')",$namn[$i],$fodd[$i]); 
}
$sql = "INSERT INTO personer (namn, fodd) VALUES ".implode(',',$values);
$result = mysql_query($sql)or die("Kunde inte lägga till<br />" . mysql_error() . "<br />" . $sql); 
}

?>

<form action="test.php" method="post"> 
Namn:<br />
<input type="text" name="namn[]" /><br /> 
Född:<br />
<input type="text" name="fodd[]" />
<br /><br /> 
Namn:<br />
<input type="text" name="namn[]" /><br /> 
Född:<br />
<input type="text" name="fodd[]" />
<br /><br />
Namn:<br />
<input type="text" name="namn[]" /><br /> 
Född:<br />
<input type="text" name="fodd[]" />
<br /><br />
Namn:<br />
<input type="text" name="namn[]" /><br /> 
Född:<br />
<input type="text" name="fodd[]" />
<br /><br /> 

<input type="submit" name="submit" value="lägg till" />
 
</form>
```

..men om något av input-fälten lämnas tomma, skapas en tom rad i mysql.   :x 
Hur förhindrar jag detta?

Sedan undrar jag även var/hur jag lägger in "NOW()" i insert ovan.

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

## #2 — LarsG, 2008-09-05T08:07Z

1)
Det får du kontrollera i din for loop och i så fall låta bli att göra sprintf. 

2)

Använd inte now. Det är specifikt för Mysql och fungerar inte i vissa andra databashanterare.

```
$values[] = sprintf("('%s', '%s',current_timestamp)",$namn[$i],$fodd[$i]);  

$sql = "INSERT INTO personer (namn, fodd,dateColumn) VALUES ".implode(',',$values);
```

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

## #3 — Guldstrand, 2008-09-05T13:08Z

Vet inte om du missuppfattade min fråga, eller om jag var otydlig.
Man SKA kunna lämna några input-fält tomma, man måste inte fylla i alla.

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

## #4 — LarsG, 2008-09-05T13:34Z

Då förstår jag inte vad du menar med tom rad. Exemplifiera med det resultat du får nu och det resultat du vill ha.

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

## #5 — Fredde Mannen, 2008-09-05T13:44Z

> **Guldstrand skrev:**
>
> Vet inte om du missuppfattade min fråga, eller om jag var otydlig.
> Man SKA kunna lämna några input-fält tomma, man måste inte fylla i alla.

Antar att detta är för att de postas även fast de inte har några värden. Du får väl helt enkelt kontrollera att namn, fodd har värde om de skall få sparas. 

```php
 for($i = 0; $i < count($namn); $i++)  {  
  if(strlen($namn[$i]) != 0 && strlen($fodd[$i]) != 0) {
     $values[] = sprintf("('%s', '%s')",$namn[$i],$fodd[$i]);
  }
}
```

 Nu vet jag inte om detta är rätt väg att gå eller om det kommer att hjälpa.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/173858-tom-rad-skapas-i-mysql
