X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=8d59df8a9fb59edf9b3d77c04c8ecb59e49079b2;hb=5e7d3d73ba4bbf6221739746e250406ad5f80736;hp=8c1ec94b52659a182adefc79dec6802a1e5f9b73;hpb=df3ed14e57f4e3dd95b7f952af40bfd1f6b6667e;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 8c1ec94b52..8d59df8a9f 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -990,14 +990,13 @@ function removeReceiver (&$receivers, $key, $userid, $poolId, $statsId = 0, $isB
// Calculate sum (default) or count records of given criteria
function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatement = 'userid', $countRows = FALSE, $add = '', $mode = '=') {
- // Init count/sum
- $data['res'] = '0';
-
+ // Debug message
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',tableName=' . $tableName . ',lookFor=' . $lookFor . ',whereStatement=' . $whereStatement . ',add=' . $add);
if ((empty($search)) && ($search != '0')) {
// Count or sum whole table?
if ($countRows === TRUE) {
// Count whole table
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'COUNT!');
$result = SQL_QUERY_ESC('SELECT COUNT(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`' . $add . ' LIMIT 1',
array(
$lookFor,
@@ -1005,6 +1004,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
), __FUNCTION__, __LINE__);
} else {
// Sum whole table
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SUM!');
$result = SQL_QUERY_ESC('SELECT SUM(`%s`) AS `res` FROM `{?_MYSQL_PREFIX?}_%s`' . $add . ' LIMIT 1',
array(
$lookFor,
@@ -1619,7 +1619,7 @@ function addBonusMailToQueue ($subject, $text, $receiverList, $points, $seconds,
`html_msg`
) VALUES (
'%s',
- %s',
+ '%s',
'%s',
%s,
%s,
@@ -1918,7 +1918,7 @@ function doGenericListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId,
foreach ($orderByColumns as $orderByColumn => $array) {
// Get keys (table/alias) and values (sorting itself)
$table = trim(implode('', array_keys($array)));
- $sorting = trim(implode('', array_keys($array)));
+ $sorting = trim(implode('', array_values($array)));
// table/alias can be omitted
if (!empty($table)) {
@@ -2022,24 +2022,14 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions =
} // END - if
// Debug message
- //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',columnName[' . gettype($columnName) . ']=' . $columnName . ',filterFunctions=' . $filterFunctions[$key] . ',extraValues=' . intval(isset($extraValues[$key])) . ',extraValuesName=' . intval(isset($extraValues[$columnName . '_list'])) . '
');
+ //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',columnName[' . gettype($columnName) . ']=' . $columnName . ',filterFunctions=' . $filterFunctions[$key] . ',extraValues=' . intval(isset($extraValues[$key])) . ',extraValuesName=' . intval(isset($extraValues[$columnName . '_list'])));
// Copy entry securely to the final arrays
$sqlColumns[$key] = SQL_ESCAPE($columnName);
$sqlValues[$key] = SQL_ESCAPE(postRequestElement($columnName));
- // Send data through the filter function if found
- if ((isset($filterFunctions[$key])) && (isset($extraValues[$key . '_list']))) {
- // Filter function set!
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - BEFORE!');
- $sqlValues[$key] = call_user_func_array($filterFunctions[$key], merge_array(array($columnName), $extraValues[$key . '_list']));
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - AFTER!');
- } elseif ((isset($filterFunctions[$key])) && (!empty($filterFunctions[$key])) && (!empty($sqlValues[$key]))) {
- // Run through an extra filter
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - BEFORE!');
- $sqlValues[$key] = handleExtraValues($filterFunctions[$key], $sqlValues[$key], NULL);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - AFTER!');
- }
+ // Try to handle call-back functions and/or extra values on the list
+ $sqlValues[$key] = doHandleExtraValues($filterFunctions, $extraValues, $key . '_list', $sqlValues[$key], $userIdColumn, key(search_array($columns, 'column', $key)));
// Is the value not a number?
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key]);
@@ -2064,7 +2054,7 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions =
// Run the SQL query
SQL_QUERY($sql, __FUNCTION__, __LINE__);
- // Add id
+ // Add id number
setPostRequestElement('id', SQL_INSERTID());
// Prepare filter data array
@@ -2088,6 +2078,15 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions =
// Edit rows by given id numbers
function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $editNow = array(FALSE), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array(), $subject = '') {
+ // Is there "time columns"?
+ if (count($timeColumns) > 0) {
+ // Then "walk" through all entries
+ foreach ($timeColumns as $column) {
+ // Convert all (possible) selections
+ convertSelectionsToEpocheTimeInPostData($column . '_ye');
+ } // END - foreach
+ } // END - if
+
// Change them all
$affected = '0';
foreach (postRequestElement($idColumn[0]) as $id => $sel) {
@@ -2105,56 +2104,50 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun
// "Walk" through all entries
foreach (postRequestArray() as $key => $entries) {
// Skip raw userid which is always invalid
- if ($key == $rawUserId[0]) {
+ if (($key == $rawUserId[0]) || ($key == 'do_edit')) {
// Continue with next field
//* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',idColumn[0]=' . $idColumn[0] . ',rawUserId=' . $rawUserId[0]);
continue;
} // END - if
// Debug message
- //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',idColumn[0]=' . $idColumn[0] . ',entries=
'.print_r($entries,TRUE).''); + /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',id=' . $id . ',idColumn[0]=' . $idColumn[0] . ',entries=
'.print_r($entries,TRUE).''); // Is entries an array? if (($key != $idColumn[0]) && (is_array($entries)) && (isset($entries[$id]))) { - //die($key.'/'.$id.'=
'.print_r($columns,TRUE).'
'.print_r($filterFunctions,TRUE).''); // Search for the right array index $search = key(search_array($columns, 'column', $key)); // Add this entry to content $content[$key] = $entries[$id]; - // Send data through the filter function if found - if ($key == $userIdColumn[0]) { - // Is the userid, we have to process it with convertZeroToNull() - $entries[$id] = convertZeroToNull($entries[$id]); - } elseif ((isset($filterFunctions[$key])) && (isset($extraValues[$key]))) { - // Filter function + extra value set - $entries[$id] = handleExtraValues($filterFunctions[$key], $entries[$id], $extraValues[$key]); - } elseif (isset($filterFunctions[$search])) { - // Filter function set - //* BUG: */ die($id.'/'.$key.'='.$entries[$id].'/'.$filterFunctions[$search]); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',filterFunctions=' . $filterFunctions[$search] . ',key=' . $key . ',id=' . $id . ',entries[' . gettype($entries[$id]) . ']=' . $entries[$id] . ' - BEFORE!'); - $entries[$id] = handleExtraValues($filterFunctions[$search], $entries[$id], NULL); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'search=' . $search . ',filterFunctions=' . $filterFunctions[$search] . ',key=' . $key . ',id=' . $id . ',entries[' . gettype($entries[$id]) . ']=' . $entries[$id] . ' - AFTER!'); - assert(!is_bool($entries[$id])); - } + // Debug message + //* BUG: */ die($key.'/'.$id.'/'.$search.'=
'.print_r($columns,TRUE).'
'.print_r($filterFunctions,TRUE).''); - // Is the value NULL? - if ($entries[$id] == 'NULL') { - // Add it directly - $sql .= sprintf(' `%s`=NULL,', - SQL_ESCAPE($key) - ); - } else { - // Else add the value covered - $sql .= sprintf(" `%s`='%s',", - SQL_ESCAPE($key), - SQL_ESCAPE($entries[$id]) - ); - } + // Handle possible call-back functions and/or extra values + $entries[$id] = doHandleExtraValues($filterFunctions, $extraValues, $key, $entries[$id], $userIdColumn, $search); + + // Add key/value pair to SQL string + $sql .= addKeyValueSql($key, $entries[$id]); } elseif (($key != $idColumn[0]) && (!is_array($entries))) { - // Add normal entries as well! - $content[$key] = $entries; + // Search for it + $search = key(search_array($columns, 'column', $key)); + //* BUG: */ die($key.'/
'.print_r($search, TRUE).'=
'.print_r($columns, TRUE).''); + + // Debug message + /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',entries[' . gettype($entries) . ']=' . $entries . ',search=' . $search . ' - BEFORE!'); + + // Add normal entries as well + $content[$key] = $entries; + + // Handle possible call-back functions and/or extra values + $entries = doHandleExtraValues($filterFunctions, $extraValues, $key, $entries, $userIdColumn, $search); + + // Debug message + /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',entries[' . gettype($entries) . ']=' . $entries . ',search=' . $search . ' - AFTER!'); + + // Add key/value pair to SQL string + $sql .= addKeyValueSql($key, $entries); } } // END - foreach @@ -2167,6 +2160,7 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun $sql .= " LIMIT 1"; // Run this query + //* BUG: */ die($sql.'
'.print_r(postRequestArray(), TRUE).''); SQL_QUERY($sql, __FUNCTION__, __LINE__); // Add affected rows @@ -2245,7 +2239,7 @@ function doGenericDeleteEntriesConfirm ($tableName, $columns = array(), $filterF } // END - if // Delete them all - //* BUG: */ die($sql.'
'.print_r($tableName,TRUE).'
'.print_r($columns,TRUE).'
'.print_r($filterFunctions,TRUE).'
'.print_r($extraValues,TRUE).'
'.print_r($deleteNow,TRUE).'
'.print_r($idColumn,TRUE).''); + //* BUG: */ die($sql.'
'.print_r($tableName,TRUE).'
'.print_r($columns,TRUE).'
'.print_r($filterFunctions,TRUE).'
'.print_r($extraValues,TRUE).'
'.print_r($deleteNow,TRUE).'
'.print_r($idColumn,TRUE).''); $idList = ''; foreach (postRequestElement($idColumn[0]) as $id => $sel) { // Is id zero? @@ -2353,24 +2347,8 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter $GLOBALS[$prefix . '_list_builder_id_value'] = bigintval($value); } // END - if - // Is there a call-back function and extra-value pair? - if ((isset($filterFunctions[$idx])) && (isset($extraValues[$idx]))) { - // Handle the call in external function - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value); - $content[$key] = handleExtraValues( - $filterFunctions[$idx], - $value, - $extraValues[$idx] - ); - } elseif ((isset($columns[$idx]['name'])) && (isset($filterFunctions[$columns[$idx]['name']])) && (isset($extraValues[$columns[$idx]['name']]))) { - // Handle the call in external function - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',fucntion=' . $filterFunctions[$columns[$idx]['name']] . ',value=' . $value); - $content[$key] = handleExtraValues( - $filterFunctions[$columns[$idx]['name']], - $value, - $extraValues[$columns[$idx]['name']] - ); - } + // Try to handle call-back functions and/or extra values + $content[$key] = doHandleExtraValues($filterFunctions, $extraValues, $idx, $content[$key], $userIdColumn, $idx); } // END - foreach // Then list it @@ -2429,5 +2407,34 @@ function isUrlBlacklisted ($url) { return $listed; } +// Adds key/value pair to a working SQL string together +function addKeyValueSql ($key, $value) { + // Init SQL + $sql = ''; + + // Is it NULL? + if (($value == 'NULL') || (is_null($value))) { + // Add key with NULL + $sql .= sprintf(' `%s`=NULL,', + SQL_ESCAPE($key) + ); + } elseif ((is_double($value)) || (is_float($value)) || (is_int($value))) { + // Is a number, so addd it directly + $sql .= sprintf(" `%s`=%s,", + SQL_ESCAPE($key), + $value + ); + } else { + // Else add the value escape'd + $sql .= sprintf(" `%s`='%s',", + SQL_ESCAPE($key), + SQL_ESCAPE($value) + ); + } + + // Return SQL string + return $sql; +} + // [EOF] ?>