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;
}
{
$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);
$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);