odchytavanie chyby

Programovacie jazyky, rady, poradňa...
arzzen
Novice
Novice
Príspevky: 6
Registrovaný: 06 jan 2007, 18:44
Kontaktovať používateľa:

odchytavanie chyby

Príspevok od používateľa arzzen »

dobry den potreboval by som prejst jednu podmienku ci je a ci sa vykona spraven.

Kód: Vybrať všetko

if (($vysledok_1 > 0) and ($vysledok_1 < 9))
							{
								$body_k1 = $body_pred_1 - 5;
								MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
							}
							else
								{
									if (($vysledok_1 > 8) and ($vysledok_1 < 15))
									{
										$body_k1 = $body_pred_1 - 4;
										MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
									}
									else
										{
											if (($vysledok_1 > 14) and ($vysledok_1 < 19))
											{
												$body_k1 = $body_pred_1 + 1;
												MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
											}
											else
												{
													if (($vysledok_1 > 18) and ($vysledok_1 < 29))
													{
														$body_k1 = $body_pred_1 + 2;
														MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
													}
													else
														{
															if (($vysledok_1 > 28) and ($vysledok_1 < 30))
															{
																$body_k1 = $body_pred_1 + 3;
																MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
															}
															else
																{
																	if (($vysledok_1 > 29) and ($vysledok_1 < 33))
																	{
																		$body_k1 = $body_pred_1 + 5;
																		MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
																	}
																}
														}
												}
										}
								}
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Tá tvoja funkcia vyzerá byť bez chýb. Dalo sa to určite urobiť aj jednoduchšie:

Toto funguje rovnako ako to tvoje, ale v testoch sú použité znamienka >= a <= (zdá sa mi to tak byť prehľadnejšie, kedže hneď vieš, koľko bodov sa za daný rozsah pridá)

Kód: Vybrať všetko

if ($vysledok_1 >= 1 && $vysledok_1 <= 32) {
	if ($vysledok_1 >= 1 && $vysledok_1 <= 8) {
		$body_k1 = $body_pred_1 - 5;
	} else if ($vysledok_1 >=9 && $vysledok_1 <= 14) {
		$body_k1 = $body_pred_1 - 4;
	} else if ($vysledok_1 >= 15 && $vysledok_1 <= 18) {
		$body_k1 = $body_pred_1 + 1;
	} else if ($vysledok_1 >= 19 && $vysledok_1 <= 28) {
		$body_k1 = $body_pred_1 + 2;
	} else if ($vysledok_1 >= 29 && $vysledok_1 <= 29) {
		$body_k1 = $body_pred_1 + 3;
	} else if ($vysledok_1 >= 30 && $vysledok_1 <= 32) {
		$body_k1 = $body_pred_1 + 5;
	}
	MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
}
Toto je ešte jednoduchšie. Prvé if odoberie 5 bodov v prípade, že je výsledok menší ako 8. Ak to neplatí, tak je výsledok väčší a prejde sa na druhé if. Ak je výsledok menší ako 14 (a väčší ako 8 ), tak sa odoberú 4 body. ... Posledné else je pre prípad, že je tých bodov viac ako 29.

Kód: Vybrať všetko

if ($vysledok_1 <= 8) {
	$body_k1 = $body_pred_1 - 5;
} else if ($vysledok_1 <= 14) {
	$body_k1 = $body_pred_1 - 4;
} else if ($vysledok_1 <= 18) {
	$body_k1 = $body_pred_1 + 1;
} else if ($vysledok_1 <= 28) {
	$body_k1 = $body_pred_1 + 2;
} else if ($vysledok_1 <= 29) {
	$body_k1 = $body_pred_1 + 3;
} else {
	$body_k1 = $body_pred_1 + 5;
}
MySQL_Query("UPDATE liga_tabulky1 SET body='$body_k1' WHERE clan='$k1';");
Napísať odpoveď