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);