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.
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().
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).
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.
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.