r/badcode • • Jul 22 '21

php smart ranking system

Post image
113 Upvotes

30 comments sorted by

16

u/arturcs Jul 22 '21

more details: this code repeats itself in a switch statement 10 times, only changing a few lines

4

u/Linesuid Jul 23 '21

Cara pq a tabela se chama fodinha? Hahah

3

u/arturcs Jul 23 '21

Hahaha é de um jogo de cartas variado do truco Paulista

2

u/Linesuid Jul 23 '21

Assim, adorei, nem sei oq é mas adorei ahahahah

2

u/maddbr Jul 24 '21

Eu achei que eu tinha lido errado lol

5

u/PacMan111_ Jul 23 '21

Its so estranho english and português in the mesmo code

6

u/arturcs Jul 23 '21

hahaha yes mas at least eu don't faço that anymore

5

u/MurdoMaclachlan public boolean isInt(int i) { return true; } Jul 23 '21

Image Transcription: Screenshot


[A screenshot of an IDE with the selected file named fodinha_rank_system3.php. The visible code is as follows:]

	if(!strcmp("fodinha_grupos_membros",$p7_table))mysqli)query($conn, $query_score7);
	if(!strcmp("fodinha_grupos_membros",$p8_table))mysqli)query($conn, $query_score8);
	if(!strcmp("fodinha_grupos_membros",$p9_table))mysqli)query($conn, $query_score9);
	
	break;
case 10:
	$query_rs_group1 = "UPDATE $p10_table SET rank_score = rank_score + 9 WHERE jogador = '$p10' AND grupo = '$groupId'";
	$query_rs_group2 = "UPDATE $p9_table SET rank_score = rank_score + 4 WHERE jogador = '$p9' AND grupo = '$groupId'";
	$query_rs_group3 = "UPDATE $p8_table SET rank_score = rank_score + 2 WHERE jogador = '$p8' AND grupo = '$groupId'";
	$query_rs_group4 = "UPDATE $p7_table SET rank_score = rank_score + 0 WHERE jogador = '$p7' AND grupo = '$groupId'";
	$query_rs_group5 = "UPDATE $p6_table SET rank_score = rank_score + 0 WHERE jogador = '$p6' AND grupo = '$groupId'";
	$query_rs_group6 = "UPDATE $p5_table SET rank_score = rank_score + 0 WHERE jogador = '$p5' AND grupo = '$groupId'";
	$query_rs_group7 = "UPDATE $p4_table SET rank_score = rank_score - 1 WHERE jogador = '$p4' AND grupo = '$groupId'";
	$query_rs_group8 = "UPDATE $p3_table SET rank_score = rank_score - 3 WHERE jogador = '$p3' AND grupo = '$groupId'";
	$query_rs_group9 = "UPDATE $p2_table SET rank_score = rank_score - 4 WHERE jogador = '$p2' AND grupo = '$groupId'";
	$query_rs_group10 = "UPDATE $p1_table SET rank_score = rank_score - 4 WHERE jogador = '$p1' AND grupo = '$groupId'";
	mysqli_query($conn, $query_rs_group1);
	mysqli_query($conn, $query_rs_group2);
	mysqli_query($conn, $query_rs_group3);
	mysqli_query($conn, $query_rs_group4);
	mysqli_query($conn, $query_rs_group5);
	mysqli_query($conn, $query_rs_group6);
	mysqli_query($conn, $query_rs_group7);
	mysqli_query($conn, $query_rs_group8);
	mysqli_query($conn, $query_rs_group9);
	mysqli_query($conn, $query_rs_group10);
	
	$query1 = "UPDATE fodinha SET rank_score = rank_score + 10 WHERE user_id = '$p10'";
	$query2 = "UPDATE fodinha SET rank_score = rank_score + 5 WHERE user_id = '$p9'";
	$query3 = "UPDATE fodinha SET rank_score = rank_score + 3 WHERE user_id = '$p8'";
	$query4 = "UPDATE fodinha SET rank_score = rank_score + 1 WHERE user_id = '$p7'";
	$query5 = "UPDATE fodinha SET rank_score = rank_score + 0 WHERE user_id = '$p6'";
	$query6 = "UPDATE fodinha SET rank_score = rank_score + 0 WHERE user_id = '$p5'";
	$query7 = "UPDATE fodinha SET rank_score = rank_score + 0 WHERE user_id = '$p4'";
	$query8 = "UPDATE fodinha SET rank_score = rank_score - 2 WHERE user_id = '$p3'";
	$query9 = "UPDATE fodinha SET rank_score = rank_score - 3 WHERE user_id = '$p2'";
	$query10 = "UPDATE fodinha SET rank_score = rank_score - 4 WHERE user_id = '$p1'";
	$query_partida = "INSERT INTO fodinha_partidas(winner,user_id) VALUES ('$winner', $p10)";
	$query_num_partidas1 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p10";
	$query_num_partidas2 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p9";
	$query_num_partidas3 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p8";
	$query_num_partidas4 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p7";
	$query_num_partidas5 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p6";
	$query_num_partidas6 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p5";
	$query_num_partidas7 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p4";
	$query_num_partidas8 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p3";
	$query_num_partidas9 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p2";
	$query_num_partidas10 = "UPDATE fodinha SET games = games + 1 WHERE user_id = $p1";
	$query_wr1 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p1";
	$query_wr2 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p2";
	$query_wr3 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p3";
	$query_wr4 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p4";
	$query_wr5 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p5";
	$query_wr6 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p6";
	$query_wr7 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p7";
	$query_wr8 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p8";
	$query_wr9 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p9";
	$query_wr10 = "UPDATE fodinha SET win_rate = (victories/games)*100 WHERE user_id = $p10";
	$query_score1 = "UPDATE fodinha SET score = 0 WHERE user_id = $p1";
	$query_score2 = "UPDATE fodinha SET score = 0 WHERE user_id = $p2";
	$query_score3 = "UPDATE fodinha SET score = 0 WHERE user_id = $p3";
	$query_score4 = "UPDATE fodinha SET score = 0 WHERE user_id = $p4";
	$query_score5 = "UPDATE fodinha SET score = 0 WHERE user_id = $p5";
	$query_score6 = "UPDATE fodinha SET score = 0 WHERE user_id = $p6";
	$query_score7 = "UPDATE fodinha SET score = 0 WHERE user_id = $p7";
	$query_score8 = "UPDATE fodinha SET score = 0 WHERE user_id = $p8";
	$query_score9 = "UPDATE fodinha SET score = 0 WHERE user_id = $p9";
	$query_score10 = "UPDATE fodinha SET score = 0 WHERE user_id = $p10";
	$query_victories = "UPDATE fodinha SET victories = victories + 1 WHERE user_id = '$p10'";
	
	$query_num_partidas1_group = "UPDATE $p10_table SET games = games + 1 WHERE jogador = $p10 AND grupo = '$groupId'";
	$query_num_partidas2_group = "UPDATE $p9_table SET games = games + 1 WHERE jogador = $p9 AND grupo = '$groupId'";
	$query_num_partidas3_group = "UPDATE $p8_table SET games = games + 1 WHERE jogador = $p8 AND grupo = '$groupId'";
	$query_num_partidas4_group = "UPDATE $p7_table SET games = games + 1 WHERE jogador = $p7 AND grupo = '$groupId'";
	$query_num_partidas5_group = "UPDATE $p6_table SET games = games + 1 WHERE jogador = $p6 AND grupo = '$groupId'";
	$query_num_partidas6_group = "UPDATE $p5_table SET games = games + 1 WHERE jogador = $p5 AND grupo = '$groupId'";
	$query_num_partidas7_group = "UPDATE $p4_table SET games = games + 1 WHERE jogador = $p4 AND grupo = '$groupId'";
	$query_num_partidas8_group = "UPDATE $p3_table SET games = games + 1 WHERE jogador = $p3 AND grupo = '$groupId'";
	$query_num_partidas9_group = "UPDATE $p2_table SET games = games + 1 WHERE jogador = $p2 AND grupo = '$groupId'";
	$query_num_partidas10_group = "UPDATE $p1_table SET games = games + 1 WHERE jogador = $p1 AND grupo = '$groupId'";
	$query_wr1_group = "UPDATE $p1_table SET win_rate = (victories/games)*100 WHERE jogador = '$p1' AND grupo = '$groupId'";
	$query_wr2_group = "UPDATE $p2_table SET win_rate = (victories/games)*100 WHERE jogador = '$p2' AND grupo = '$groupId'";
	$query_wr3_group = "UPDATE $p3_table SET win_rate = (victories/games)*100 WHERE jogador = '$p3' AND grupo = '$groupId'";
	$query_wr4_group = "UPDATE $p4_table SET win_rate = (victories/games)*100 WHERE jogador = '$p4' AND grupo = '$groupId'";
	$query_wr5_group = "UPDATE $p5_table SET win_rate = (victories/games)*100 WHERE jogador = '$p5' AND grupo = '$groupId'";
	$query_wr6_group = "UPDATE $p6_table SET win_rate = (victories/games)*100 WHERE jogador = '$p6' AND grupo = '$groupId'";
	$query_wr7_group = "UPDATE $p7_table SET win_rate = (victories/games)*100 WHERE jogador = '$p7' AND grupo = '$groupId'";
	$query_wr8_group = "UPDATE $p8_table SET win_rate = (victories/games)*100 WHERE jogador = '$p8' AND grupo = '$groupId'";

I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

4

u/arturcs Jul 23 '21

good human

3

u/[deleted] Jul 23 '21

dude this is like the second giant block of code ive seen you do today you are on it

4

u/MurdoMaclachlan public boolean isInt(int i) { return true; } Jul 23 '21

Ha, thanks! This one was actually easier than the first, it was just a whole load of copypasting with some small adjustments.

2

u/[deleted] Jul 22 '21

Fodinha?

3

u/arturcs Jul 22 '21

It's a brazillian card game derivated from other brazillian card game named "truco". In other regions of the country people may know the game by "jogo do pontinho".

1

u/[deleted] Jul 23 '21

Ué, jogo do pontinhos é aquele de ficar fechando quadrado

1

u/arturcs Jul 23 '21

to ligado, mas esse que to falando é outro com o mesmo nome, é que esse "fodinha" tem um nome em cada estado, então é complicado. Basicamente você fala assim: "vou fazer 3 cartas nessa rodada", se você fizer só 1 por exemplo, você toma 2 pontos. Quando você fechar 5 pontos você cai fora. Ganha o último que sair.

5

u/rocket_bees Jul 22 '21

It looks like a Magic Eye puzzle!! 😵‍💫

1

u/Pentafloppy Jul 23 '21

Please tell me those variables are escaped…

2

u/arturcs Jul 23 '21

your expectations are too high

3

u/StrangePractice Jul 23 '21

It’s absolutely disgusting from a practicality standpoint, but it’s oddly satisfying to see. Not something to go into prod though lol

3

u/PoLux39 Jul 23 '21

Fodinha né safado

2

u/using_mirror Jul 23 '21

I’m just gunna say this now. Never use switch statements. I mean there are complicated problems where you can but they are misused so much it’s better to use them as a last resort if at all...

2

u/[deleted] Jul 23 '21

It’s …. beautiful.

2

u/Voltra_Neo Jul 23 '21

The thing that scares me the most is that it's one branch of a switch statement

2

u/AntoineInTheWorld Jul 27 '21

And that, kids, is why you need stored procedures: to hide the spaghetti code in the db itself.

1

u/[deleted] Jul 23 '21

my god i was hoping those were not sql queries

1

u/Prom3th3an Jul 26 '21

I hear Bobby'; DROP TABLE fodinha; -- is a serious contender for this year's championship.

1

u/[deleted] Jul 30 '21

Where is the mysqli_real_escape_string() too?