<?php
function parse_form_data ($data) {
return $params;
}
function print_arr ($arr) {
echo '<pre>';
echo '</pre>';
}
function show_col ($pdo, $table) {
//$pdo->beginTransaction();
$query="SELECT column_name, extra FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='$table'";
$stmt = $pdo->prepare($query);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$columns = $stmt->fetchAll(PDO::FETCH_UNIQUE); //какая-то магия(
return($columns);
// $pdo->commit();
}
//function update_base ($pdo, $data, $table, $operation,$id=NULL) {
function update_base ($pdo, $data=NULL, $table, $operation,$id=NULL) {
$table_data= show_col ($pdo, $table); // получили все поля таблицы
// print_arr($table_data);
$allowed=array_keys($table_data); // получили ключи полей
//print_arr($allowed);
$placeholders = '';
foreach ($allowed as $field) {
if (isset($data[$field])) { $placeholders.="`".str_replace("`","``",$field)."`". "=:$field, ";
$values[$field] =$data[$field];
}
}
$placeholders= substr($placeholders, 0, -2);
switch ($operation) {
case 'add':
$query = "INSERT INTO `$table` SET ".$placeholders;
// echo $query;
// $values['id']="";
break;
case 'update':
$query = "UPDATE `$table` SET ".$placeholders." WHERE id = :id"; // ЗДЕСЬ НУЖНО СДЕЛАТЬ ДИНАМИЧЕСКИй ID (CITY и т д)
// $query = "UPDATE `$table` SET ".$placeholders." WHERE event_id = :id";
// $query = "UPDATE `$table` SET ".$placeholders." WHERE city = :id";
$values["id"] = $id;
// echo $query;
break;
case 'delete':
$query = "DELETE FROM `$table` WHERE id = :id";
// $query = "DELETE FROM `$table` WHERE city = :id";
// $query = "DELETE FROM `$table` WHERE event_id = :id";
$values["id"] = $id;
//$values=array('id' => $id);
break;
}
$stmt = $pdo->prepare($query);
$stmt->execute($values);
if (!$stmt) {
echo "\nPDO::errorInfo():\n";
}
$lastId = $pdo->lastInsertId();
return $lastId;
}
function data_from_db ($pdo,$fields,$table,$k=NULL,$id=NULL) {
$query="SELECT $fields FROM $table";
$query.=" WHERE id=$id";
}
$query.=" ORDER BY `created` DESC";
// echo '<br>'.$query;
$stmt = $pdo->prepare($query);
$stmt->execute();
if ($k==NULL){
$data=$stmt->fetchAll();
} else {
while ($row=$stmt->fetch()) {
$data[$row[$k]]=$row;
}
}
return $data;
}
?>
PD9waHAKCgpmdW5jdGlvbiBwYXJzZV9mb3JtX2RhdGEgKCRkYXRhKSB7CgkkcGFyYW1zID0gYXJyYXkoKTsKCXBhcnNlX3N0cigkZGF0YSwgJHBhcmFtcyk7CgkKCXJldHVybiAkcGFyYW1zOwoKfQoKZnVuY3Rpb24gcHJpbnRfYXJyICgkYXJyKSB7CgllY2hvICc8cHJlPic7CgkJcHJpbnRfcigkYXJyKTsKCWVjaG8gJzwvcHJlPic7Cn0KCgpmdW5jdGlvbiBzaG93X2NvbCAoJHBkbywgJHRhYmxlKSB7CgkvLyRwZG8tPmJlZ2luVHJhbnNhY3Rpb24oKTsJCgoJJHF1ZXJ5PSJTRUxFQ1QgY29sdW1uX25hbWUsIGV4dHJhIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkNPTFVNTlMgV0hFUkUgVEFCTEVfTkFNRT0nJHRhYmxlJyI7Cgkkc3RtdCA9ICRwZG8tPnByZXBhcmUoJHF1ZXJ5KTsKCgkkc3RtdC0+ZXhlY3V0ZSgpOwoJJHN0bXQtPnNldEZldGNoTW9kZShQRE86OkZFVENIX0FTU09DKTsgIAoJCgkkY29sdW1ucyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX1VOSVFVRSk7IC8v0LrQsNC60LDRjy3RgtC+INC80LDQs9C40Y8oCgkKCXJldHVybigkY29sdW1ucyk7CgkvLyAkcGRvLT5jb21taXQoKTsKfQoKLy9mdW5jdGlvbiB1cGRhdGVfYmFzZSAoJHBkbywgJGRhdGEsICR0YWJsZSwgJG9wZXJhdGlvbiwkaWQ9TlVMTCkgewpmdW5jdGlvbiB1cGRhdGVfYmFzZSAoJHBkbywgJGRhdGE9TlVMTCwgJHRhYmxlLCAkb3BlcmF0aW9uLCRpZD1OVUxMKSB7CgkkdGFibGVfZGF0YT0gc2hvd19jb2wgKCRwZG8sICR0YWJsZSk7IC8vINC/0L7Qu9GD0YfQuNC70Lgg0LLRgdC1INC/0L7Qu9GPINGC0LDQsdC70LjRhtGLCi8vCXByaW50X2FycigkdGFibGVfZGF0YSk7CgkkYWxsb3dlZD1hcnJheV9rZXlzKCR0YWJsZV9kYXRhKTsgLy8g0L/QvtC70YPRh9C40LvQuCDQutC70Y7Rh9C4INC/0L7Qu9C10LkKCi8vcHJpbnRfYXJyKCRhbGxvd2VkKTsKCSRwbGFjZWhvbGRlcnMgPSAnJzsKICAJJHZhbHVlcyA9IGFycmF5KCk7CgkKCQkJZm9yZWFjaCAoJGFsbG93ZWQgYXMgJGZpZWxkKSB7CgkJCSAgICBpZiAoaXNzZXQoJGRhdGFbJGZpZWxkXSkpIHsKCQkJICAgICAgJHBsYWNlaG9sZGVycy49ImAiLnN0cl9yZXBsYWNlKCJgIiwiYGAiLCRmaWVsZCkuImAiLiAiPTokZmllbGQsICI7CgkJCSAgIAoJCQkgICAgICAkdmFsdWVzWyRmaWVsZF0gPSRkYXRhWyRmaWVsZF07CgkJCSAgICB9CgkJCSAgfQogCQogCSRwbGFjZWhvbGRlcnM9IHN1YnN0cigkcGxhY2Vob2xkZXJzLCAwLCAtMik7IAoKCXN3aXRjaCAoJG9wZXJhdGlvbikgewoJCWNhc2UgJ2FkZCc6CgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPIGAkdGFibGVgIFNFVCAiLiRwbGFjZWhvbGRlcnM7CgkvLwllY2hvICRxdWVyeTsKCS8vCSR2YWx1ZXNbJ2lkJ109IiI7CgkJYnJlYWs7CgkJCgkJY2FzZSAndXBkYXRlJzoKCQkkcXVlcnkgPSAiVVBEQVRFIGAkdGFibGVgIFNFVCAiLiRwbGFjZWhvbGRlcnMuIiBXSEVSRSBpZCA9IDppZCI7IC8vINCX0JTQldCh0Kwg0J3Qo9CW0J3QniDQodCU0JXQm9CQ0KLQrCDQlNCY0J3QkNCc0JjQp9CV0KHQmtCY0LkgSUQgKENJVFkg0Lgg0YIg0LQpCgkJLy8JJHF1ZXJ5ID0gIlVQREFURSBgJHRhYmxlYCBTRVQgIi4kcGxhY2Vob2xkZXJzLiIgV0hFUkUgZXZlbnRfaWQgPSA6aWQiOwoJCS8vCSRxdWVyeSA9ICJVUERBVEUgYCR0YWJsZWAgU0VUICIuJHBsYWNlaG9sZGVycy4iIFdIRVJFIGNpdHkgPSA6aWQiOwoJCSR2YWx1ZXNbImlkIl0gPSAkaWQ7CgkvLwllY2hvICRxdWVyeTsKCQlicmVhazsKCQoJCWNhc2UgJ2RlbGV0ZSc6CgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NIGAkdGFibGVgIFdIRVJFIGlkID0gOmlkIjsKCQkvLwkkcXVlcnkgPSAiREVMRVRFIEZST00gYCR0YWJsZWAgV0hFUkUgY2l0eSA9IDppZCI7CgkJLy8JJHF1ZXJ5ID0gIkRFTEVURSBGUk9NIGAkdGFibGVgIFdIRVJFIGV2ZW50X2lkID0gOmlkIjsKCQkJJHZhbHVlc1siaWQiXSA9ICRpZDsKCQkJLy8kdmFsdWVzPWFycmF5KCdpZCcgPT4gJGlkKTsKCQlicmVhazsKCQl9CgoJCSRzdG10ID0gJHBkby0+cHJlcGFyZSgkcXVlcnkpOwoJCSRzdG10LT5leGVjdXRlKCR2YWx1ZXMpOwoKCQlpZiAoISRzdG10KSB7CgkJCWVjaG8gIlxuUERPOjplcnJvckluZm8oKTpcbiI7CgkJCXByaW50X3IoJHBkby0+ZXJyb3JJbmZvKCkpOwoJCX0gCgkJJGxhc3RJZCA9ICRwZG8tPmxhc3RJbnNlcnRJZCgpOwoJCXJldHVybiAkbGFzdElkOwp9CgpmdW5jdGlvbiBkYXRhX2Zyb21fZGIgKCRwZG8sJGZpZWxkcywkdGFibGUsJGs9TlVMTCwkaWQ9TlVMTCkgewoJCgkkcXVlcnk9IlNFTEVDVCAkZmllbGRzIEZST00gJHRhYmxlIjsKCQlpZiAoaXNzZXQoJGlkKSkgewoJCQkkcXVlcnkuPSIgV0hFUkUgaWQ9JGlkIjsKCgkJfQoJJHF1ZXJ5Lj0iIE9SREVSIEJZIGBjcmVhdGVkYCBERVNDIjsKLy8JZWNobyAnPGJyPicuJHF1ZXJ5OwoJJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCRxdWVyeSk7Cgkkc3RtdC0+ZXhlY3V0ZSgpOwoJCWlmICgkaz09TlVMTCl7CQoJJGRhdGE9JHN0bXQtPmZldGNoQWxsKCk7CgkJfSBlbHNlIHsKCQkJd2hpbGUgKCRyb3c9JHN0bXQtPmZldGNoKCkpIHsKCQkJCSRkYXRhWyRyb3dbJGtdXT0kcm93OwkKCQkJfSAKCQl9CgkJcmV0dXJuICRkYXRhOwp9CgoKPz4KCg==