---
title: "alla värden i en array?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/54583-alla-värden-i-en-array"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "greymane"
published: "2002-09-29T11:34:39.000Z"
updated: "2002-09-29T16:34:57.000Z"
replies: 7
views: 286
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/54583-alla-värden-i-en-array"
---

# alla värden i en array?

## #1 — greymane, 2002-09-29T11:34Z

hur gör man för att plocka ut alla värden ur exempelvis $\_POST när man skickat data via ett formulär? kan man loopa igenom en array som inte är sifferindexerad?

vad jag vill göra är att automatiskt bygga en sql-tabell utifrån de fält som finns i ett givet formulär.

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

## #2 — SPiN, 2002-09-29T11:49Z

> hur gör man för att plocka ut alla värden ur exempelvis $\_POST när man skickat data via ett formulär? kan man loopa igenom en array som inte är sifferindexerad?

Det finns många sätt att göra det på, ett sätt är att använda funktionen array_shift() eller array_pop(). Ett annat är att använda en foreach-slinga, ännu ett är att använda en while-slinga med list() och each().

**array_shift()/array_pop()**

```
while( $currentElement = array_shift( $myArray ) ) {
     echo $currentElement;
}
//
while( $currentElement = array_pop( $myArray ) ) {
     echo $currentElement;
}
```

Skillnaden mellan dem är att array_shift() tar ut värdet på första index, medan array_pop() tar ut värdet på sista index först.

**foreach**

```
foreach( $myArray as $currentKey => $currentValue ) {
     echo "På platsen " . $currentKey . " fanns värdet " . $currentValue . ".<br />";
}
```

**while**

```
while( list( $currentKey, $currentValue ) = each( $myArray ) ) {
     echo "På platsen " . $currentKey . " fanns värdet " . $currentValue . ".<br />";
}
```

> vad jag vill göra är att automatiskt bygga en sql-tabell utifrån de fält som finns i ett givet formulär.

Skulle du kunna förklara lite mer hur du menar?

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

## #3 — greymane, 2002-09-29T12:16Z

jag har ett formulär med fnamn och enamn (och förmodligen minst 15 formulärobjekt till :) ). det hade då varit smidigt att slippa skapa sql-tabellen manuellt. tabellen skapas på genom att ta namnen på variablerna o sätta dem som kolumnnamn. tabellen skulle sett ut: ID, fnamn, enamn (och förmodligen minst 15 kolumner till). 

var jag tydligare nu?

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

## #4 — Matte, 2002-09-29T12:46Z

För att plocka fram allt från ett skickat formulär så kan du använda det här:

```
foreach($_POST as $key => $val){
  // Gör något med posterna
}
```

 Där läggs namnen på formulärselementen i $key och värdet på densamma i $val. Då kan du lägga uppgifterna i arrayer, eller på annat sätt använda variablerna för att bygga upp din sql-fråga. Jag har själv använt den metoden för att bygga upp INSERT och UPDATE satser.

Utifrån din fråga så skulle ju alla tabeller se likadana ut, så det kanske istället vore bättre att ha en fast fråga att hämta när en tabell ska skapas.

Sedan får man intrycket att du ska ha en egen tabell för varje användare. Jag vet inte vad du tänkt göra för något, men du skulle kanske fundera på om du verkligen inte kan göra, vad du nu tänker göra, med endast en tabell och i den ett fält med användarid, som du kan köra mot för dina SELECT, INSERT och UPDATE.

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

## #5 — greymane, 2002-09-29T12:49Z

tack! precis vad jag behövde!

nä jag ska bara göra det en gång, så jag får \_en\_ formuläranpassad tabell utan att behöva göra så mycket manuellt :) \*lat\*

tack ska ni ha båda två!

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

## #6 — greymane, 2002-09-29T15:53Z

jag har nog inte förstått riktigt. jag känner att jag gjort ett dumt fel, men jag vet itne var. jag får:

Warning: Invalid argument supplied for foreach() in /www/dev/mk_table/mk_table.php on line 4

när jag använder

```
foreach($_POST as $key => $val){
  // Gör något med posterna
}
```

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

## #7 — Matte, 2002-09-29T16:25Z

Det enda jag på raken kan tänka mig (finns säker fler saker) som kan ge ett sådant felmeddelande är att du har en version av PHP som är tidigare än 4.1.0. I såfall byt ut $\_POST mot $HTTP_POST_VARS.

Felmeddelandet säger alltså att variabeln $\_POST inte finns.
Kolla så att du skrivit rätt och inte t.ex $POST.

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

## #8 — greymane, 2002-09-29T16:34Z

jag hade visst en äldre version än jag trodde :) tackar!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/54583-alla-värden-i-en-array
