Avatar billede angelenglen Nybegynder
12. februar 2004 - 09:23 Der er 1 kommentar og
2 løsninger

autodetect form-felter og indsæt i db

findes der en måde hvor jeg fx kan have to filer - éen med min form i , fx index.html og éen der skriver til db, fx skriv.php
formen i index skal så naturligvis have action="skriv.php?tabel=db_tabel"

anyway her er hvad jeg gerne ville have:
skriv.php autodetecter alle form-felter i (dvs værdier der bliver sendt via POST) og skriver dem til databasen i tabellen "db_tabel" i feltet deri med samme navn som selve værdien.

-fx noget i stil med:

------------ index.html -----------

<form method="post" action="skriv.php?tabel=db_tabel">
Brugernavn: <input name=username type=text><br>
Kodeord: <input name=password type=password><br>
Email: <input name=email type=text><br>
Alder:  <input name=age type=text><br>
Kommentarer: <textarea name=comments></textarea><br>
Farve:<br>
<input type=checkbox name=color value=red CHECKED> Rød<br>
<input type=checkbox name=color value=blue> Blå<br>
<input type=checkbox name=color value=yellow> Gul<br>
<input type=hidden name=fromform value=yes>
<input type=submit>
------------------ index.html slut -----------------

skriv.php skulle så se følgende felter:
username, password, email, age, comments, color og fromform - og skrive dem til databasen i felterne med samme navne, og i tabellen $_GET['tabel'] (som så ville være "db_tabel" her)

-men jeg ved ikke hvordan jeg får den til selv at finde de felter... indtil nu har jeg altid hard-coded felt-navnene osv ind i filer som skriv.php..

som extra bonus, måtte alle data også gerne behandles, så jeg kunne tilføge kommandoer på dem, som fx: addslashes() striptags() eller andre ting jeg måske kunne finde på..

håber det kan lade sig gøre...
Avatar billede avminarm Juniormester
12. februar 2004 - 10:17 #1
prøv at kigge på dette link - det kan virke uoverskueligt ved første øjekast, men jeg tror det er det du er ude efter?

http://www.devshed.com/c/a/MySQL/Dynamically-Insert-and-Update-values-in-a-MySQL-database-using-OOP/
Avatar billede barlach Nybegynder
13. februar 2004 - 13:12 #2
du har alle dine post vars liggende i $_POST.

prøv evt. flg. (har ikke testet det) og skriv her hvad den udskriver...

$query_string="insert into ".$_GET['table']." (";
$name_string="";
$value_string="";
foreach($_POST as $name=>$value){
  $name_string.=$name.",";
  $value_string.=$value.",";
}

$query_string.=substr($name_string,0,(strlen($name_string)-1)).")
VALUES (".substr($value_string,0,(strlen($value_string-1))).')"';

print $query_string;
Avatar billede angelenglen Nybegynder
16. marts 2004 - 09:03 #3
jeg kunne ikke få det til at virke :(

Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester