- 1
- 2
$query = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
$query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
$query = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
$query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";
Я не знаю, к какой секции следует отнести этот высер:
1) Автор решил учить испанский. Таблицы имеют имена `aparatos`, `abonandos`, etc
2) Само собой, SQL injection
3) Порнография при работе с датой
−1
def $qmark = 1
def ? = 1
// Error:(2, 6) method ? is defined twice
Scala-way
0
<!-- todo: put this in a different file!!! -->
<script>
function authenticateUser(username, password) {
var accounts = apiService.sql(
"SELECT * FROM users"
);
for (var i = 0; i < accounts.length; i++) {
var account = accounts[i];
if (account.username === username &&
account.password === password)
{
return true;
}
}
if ("true" === "true") {
return false;
}
}
$('#login').click(function() {
var username = $("#username").val();
var password = $("#password").val();
var authenticated = authenticateUser(username, password);
if (authenticated === true) {
$.cookie('loggedin', 'yes', { expires: 1});
} else if (authenticated === false) {
$("#error_message").show();
}
});
</script>
This JavaScript code powers a 1,500 user intranet application
−2
private static function preparePostProperty(&$data, $propName = [], $type = 'float'){
if(!in_array($type, ['float', 'integer', 'string']))
return;
if(is_array($data) && !empty($propName)){
$key = '$data["' . implode('"]["', $propName) . '"]';
@eval("if(isset($key)) $key = ($type)$key;");
}
}
public static function preparePost($data, $documentsObjects = []){
if(is_array($data)){
self::preparePostProperty($data, ['general', 'fromMtender', 'lotDetails', 'lotAmount']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountBrutto']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountNetto']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountPrepayment']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGuarantee']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGE']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountWithdraw']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountMaxWithdraw']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'transferDuration']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'nonPaymentMax']);
self::preparePostProperty($data, ['general', 'additionalData', 'executionShouldStart']);
self::preparePostProperty($data, ['general', 'additionalData', 'executionDuration']);
foreach ($data['subject'] as $k => $subjects){
//data[subject][0][fromMtender][itemQuantity]
self::preparePostProperty($data, ['subject', $k, 'fromMtender', 'itemQuantity']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withoutVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withoutVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withVAT']);
foreach ($subjects['additionalData']['budget'] as $kb => $budgets){
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'budget', $kb, 'budgetAmount']);
}
}
self::preparePostProperty($data, ['ca', 'additionalData', 'caPerson', 'caPersonCode']);
self::preparePostProperty($data, ['eo', 'fromMtender', 'eoCode']);
self::preparePostProperty($data, ['eo', 'additionalData', 'eoLicenses', 'eoValidityDuration']);
self::preparePostProperty($data, ['eo', 'additionalData', 'eoPerson', 'eoPersonCode']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercent']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercentMax']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercent']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercentMax']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'maxPenalty']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'maxDelay']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'warrantyPeriod']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnSigned']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnFM']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnTermination']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondOnTermination']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'submitClaimsMax']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondClaimsMax']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'deliverOnClaims']);
}
self::appendPostDocuments($data, $documentsObjects);
return $data;
}
ЧТОЕТА?
−1
public Pattern waitNotEmptyRegex(){
String read;
Pattern pattern;
while (true) {
try {
try {
read = in.readLine();
if (!read.trim().isEmpty()) {
pattern = Pattern.compile(read);
} else {
context.getOut().write(context.localizKey("console.messages.emptyString") + "\n");
}
} catch (PatternSyntaxException e) {
context.getOut().write(context.localizKey("console.messages.invalidPattern") + "\n");
}
}catch (IOException e){
throw new IllegalStateException(e);
}
}
}
Боооольше вложенных блоков
−1
Нах c#, если есть Java?
−3
System.out.println("The result of " + calc.getFirstNo() + " " + calc.getCharacter() + " " + calc.getSecondNo() + " is " + calc.calculate(calc.getFirstNo(), calc.getCharacter(), calc.getSecondNo()));
−2
/*
Программа для генерации и вывода разряженной матрицы
Специально для сайта govnokod.ru
*/
#include <iostream>
#include <cstdlib>
#include <ctime>
// Объявление переменных
const int first_index_size=20;
const int second_index_size=50;
char matrix_array[first_index_size][second_index_size];
enum border_style{
line,single
};
void borders(border_style matrix_border)
{
switch(matrix_border)
{
case 0:
for(int i=0; i<(second_index_size+2); i++)
std::cout<<"#";
std::cout<<"\n";
break;
case 1:
std::cout<<"#";
}
}
void rand_func_init()
{
// Инициализация функции rand()
srand(time(0));
rand();
}
void matrix_init_zero()
{
// Инициализация матрицы нулём
for(int i=0; i<first_index_size; i++)
for(int t=0; t<second_index_size; t++)
matrix_array[i][t]=0;
}
void matrix_init_rand()
{
// Заполнение матрицы
for(int i=0; i<first_index_size; i++)
{
int init_num=rand()%11;
while(init_num)
{
init_num--;
matrix_array[i][rand()%50]=149;
}
}
}
void matrix_print()
{
// Вывод матрицы
borders(line);
for(int i=0; i<first_index_size; i++)
{
borders(single);
for(int t=0; t<second_index_size; t++)
std::cout<<matrix_array[i][t];
borders(single);
std::cout<<"\n";
}
borders(line);
}
int main()
{
rand_func_init();
matrix_init_zero();
matrix_init_rand();
matrix_print();
return 0;
}
Разряженная матрица 20x50.
Количество ненулевых значений от 0 до 10.
+1
#include <iostream>
#include <type_traits>
#include <utility>
#include <array>
template<size_t Size, typename T, typename FunctorType, size_t... idx>
constexpr std::array<decltype(std::declval<FunctorType>().operator()(std::declval<T>())), Size>
map_impl(const std::array<T, Size> & arr, FunctorType && f, std::index_sequence<idx...>)
{
return std::array{ f(std::get<idx>(arr))... };
}
template<size_t Size, typename T, typename FunctorType>
constexpr std::array<decltype(std::declval<FunctorType>().operator()(std::declval<T>())), Size>
map(const std::array<T, Size> & arr, FunctorType && f)
{
return map_impl(arr, f, std::make_index_sequence<Size>{});
}
struct MyFunctor {
constexpr float operator()(int arg)
{
return static_cast<float>(arg * arg) / 2.0f;
}
};
int main()
{
constexpr std::array arr{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
auto arrMappedFunctor = map(arr, MyFunctor{});
auto arrMappedLambda = map(arr, [](int x) constexpr { return static_cast<float>(x * x) / 2.0f; });
for (auto && x : arrMappedFunctor) {
std::cout << x << ' ';
}
std::cout << std::endl;
for (auto && x : arrMappedLambda ) {
std::cout << x << ' ';
}
std::cout << std::endl;
return 0;
}
0.5 2 4.5 8 12.5 18 24.5 32 40.5 50
0.5 2 4.5 8 12.5 18 24.5 32 40.5 50
Метушня выходит на новый уровень: полноценный map в compile-time. Поддерживает как ручные функторы с перегруженным operator(), так и constexpr-лямбды. При помощи небольшой модификации возможно реализовать поддержку кортежей с произвольными типами.
+1
Давайте течь от отступов и ругать код без оных.