Spracovanie formulára podľa databázy
PHP -> Ukážkové kódy v PHP -> Spracovanie formulára podľa databázy
Formulár odoslal na stránku formulár vyplnený užívateľom. Táto funkcia z prijatých údajov vytvorí SQL príkaz na spustenie.
function vyrob_sql
($tabulka,
$pk,
$typ /*typ=insert/update*/,
$where /*where zadavajte len pri update*/)
{
$prikaz=
"SELECT * FROM $tabulka limit 0,1";
$result = mysql_query
($prikaz);
// Put them in array
for
($i = 0;
$nadpisy[
$i] = mysql_fetch_assoc
($result);
$i++
) ;
// Delete last empty one
array_pop
($nadpisy);
$nadpisy=array_keys
($nadpisy[0]
);
if ($typ==
"insert")
{$sql=
"insert into $tabulka (";
}
else
{$sql=
"update $tabulka set ";
}
$a=0;
for ($i = 1;
$i < count
($nadpisy);
$i=
$i+1
)
{
if ($pk!=
$nadpisy[
$i]
)
{
$a++;
$nadp[
$a]=
$nadpisy[
$i];
if ($typ==
"insert")
{
if ($a!=1
) {$sql.=
", ";
}
$sql.=
$nadp[
$a];
}
}
}
if ($typ==
"insert")
{
$sql.=
") values (";
}
$a=0;
for ($i = 1;
$i <= count
($nadp);
$i++
)
{
if ($typ==
"insert")
{
$a++;
if ($a!=1
) {$sql.=
", ";
}
$sql.=
"'".
$_POST[
$nadp[
$i] ].
"'";
}
else
{
if (isset
($_POST[
$nadp[
$i] ]
))
{
$a++;
if ($a!=1
) {$sql.=
", ";
}
$sql.=
$nadp[
$i].
"='".
$_POST[
$nadp[
$i] ].
"'";
}
}
}
if ($typ==
"insert")
{$sql.=
")";
}
else
{$sql.=
" where $where";
}
return $sql;
}
Ukážka použitia
$tabulka=
"users";
$pk=
"id";
if ($_POST[
"id"]==
"")
{
$typ=
"insert";
$where=
"";
}
else
{
$where=
"id='".
$_POST[
"id"].
"'";
}
$sql=vyrob_sql
($tabulka,
$pk,
$typ,
$where);
//echo "$sql<br />";
$result = mysql_query
($sql);