0)) {
// Is an array so we can run it through
foreach ($keys_array as $key) {
// First check if it does exist
$result_media = SQL_QUERY_ESC("SELECT
`media_key`
FROM
`{?_MYSQL_PREFIX?}_mediadata`
WHERE
`media_key` = '%s'
LIMIT 1", array($key), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result_media) == 0) {
// Not found so we create it (mode will be ignored here!)
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_mediadata` (`media_key`, `media_value`) VALUES ('%s', '%s')",
array($key, $value), __FUNCTION__, __LINE__);
} else {
// Update entry
switch ($mode) {
case 'add': $mode = '+'; break;
case 'sub': $mode = '-'; break;
} // END - switch
if ($mode == 'init') {
// Initialize entry
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_mediadata` SET `media_value`=%s WHERE `media_key`='%s' LIMIT 1",
array($value, $key), __FUNCTION__, __LINE__);
} else {
// Update entry
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_mediadata` SET `media_value`=`media_value`".$mode."%s WHERE `media_key`='%s' LIMIT 1",
array($value, $key), __FUNCTION__, __LINE__);
}
}
// Check affected rows
if (is_null($added)) {
//* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):added='.intval($added));
$added = (!SQL_HASZEROAFFECTED());
//* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):added='.intval($added));
} else {
//* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):added='.intval($added));
$added = ($added && (!SQL_HASZEROAFFECTED()));
//* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):added='.intval($added));
}
} // END - foreach
} // END - if
// Zero entries are always added
if ($value == 0) {
// Is zero value, so we need to set $added here to avoid wrong false result
$added = true;
} // END - if
// Return result
return $added;
}
// Getter for entry
function getMediadataEntry ($key) {
// Return nothing by default
$value = '';
// Check for entry
$result = SQL_QUERY_ESC("SELECT media_value FROM `{?_MYSQL_PREFIX?}_mediadata` WHERE media_key='%s' LIMIT 1",
array($key), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Load data
list($value) = SQL_FETCHROW($result);
} // END - if
// Return data
return $value;
}
// Filter for updating media data
function FILTER_UPDATE_MEDIADATA_ENTRY ($data) {
// Execute the filter function
$data['added'] = ($data['added'] && updateMediadataEntry(array('total_points'), $data['mode'], $data['points']));
// Return data
return $data;
}
//
?>