Pereiti prie turinio

Rekomenduojami pranešimai

Bandau su is_int() patikrinti ar tikrai ivestas integer o ne tekstas ar dar kokia fignia, bet kazkodel nebeprintina is vis nieko. Nei klaidos rodo, nei i ekrana ka ismeta, paspaudus siusti..iki tol viskas veike puikiai. Taigi, kaip patikrinti, ir kur cia sintakses klaida? Taip pat, kurioje vietoje geriausia ivesta teksta dar pro trim() funkcija paleist? Aciu uz ats. :)

 

<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) AND ($_POST['svoris'])) {
$ugis= $_POST['ugis'];
$svoris= $_POST['svoris'];
	if (is_int($ugis AND $svoris)) {
	$KMI= $svoris / ($ugis * $ugis);
	$KMI= round_out($KMI, 2);
		if ($KMI <= '18,5') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)'; 
		}
		if ($KMI >= '40') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Trečio laipsnio nutukimas)'; 
		}
		if ($KMI >= '18,5' AND $KMI <= '24,9') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Normalus svoris)';
		}
		if ($KMI >= '25' AND $KMI <= '29.9') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Viršsvoris)';
		}
		if ($KMI >= '30' AND $KMI <= '34.9') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Pirmo laipsnio nutukimas)';
		}
		if ($KMI >= '35' AND $KMI <= '39.9') {
			$return= "Jūsų KMI yra: " . $KMI . ' (Antro laipsnio nutukimas)';
		} else {
			$return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
	} 
}
}

?>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
	<title>KMI skaičiuoklė</title>
</head>

<body>
	<form method="post">
		<ul>
		  <li>
			<label for="ugis">Ūgis (Metrais: pvz: 1.80): </label>
			<input type="text" name="ugis">
		  </li>
		  <li>
			<label for="svoris">Svoris (Kilogramais pvz: 70): </label>
			<input type="text" name="svoris">
		  </li>
		  <li>
			<input type="submit" value="Apskaičiuoti">
		  </li>
		</ul> 
		<?php
		if (isset($return)) {
			echo $return;
		}

		?>
	</form>
</body>
</html>

Redagavo Triple6
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vietoj is_int turi būti is_numeric. Dėl ko? Paskaityk dokumentacijoj. O sintaksės klaidos tai, kad vietoj

if ($KMI <= '18,5')

turi būti ne kablelis, o taškas ir be apostrofų.

if ($KMI <= 18.5)

Ir visas kitas eilutes išsitaisyk ir įsidėmėk, kad skaičiai į apostrofus ar kabutes neįmami.

Redagavo MuniGod
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bliamba, dabar taip privėliau kad pats nesusigaudau :D Visada isprintina: Jūsų KMI yra: (Per mažas svoris)

 

Kas dabar netaip?

 


<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) AND ($_POST['svoris'])) {
$ugis= $_POST['ugis'];
$svoris= $_POST['svoris'];
}
	if (is_numeric($ugis) && is_numeric($svoris)) {
	$KMI= $svoris / ($ugis * $ugis);
	$KMI= round_out($KMI, 2);
	} else {
		$return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
	} 
	if ($KMI <= 18.5) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)'; 
	}
	elseif ($KMI >= 40) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Trečio laipsnio nutukimas)'; 
	}
	elseif ($KMI >= 18.5 AND $KMI <= 24.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Normalus svoris)';
	}
	elseif ($KMI >= 25 AND $KMI <= 29.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Viršsvoris)';
	}
	elseif ($KMI >= 30 AND $KMI <= 34.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Pirmo laipsnio nutukimas)';
	}
	elseif ($KMI >= 35 AND $KMI <= 39.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Antro laipsnio nutukimas)';
	} 

?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bliamba, dabar taip privėliau kad pats nesusigaudau :D Visada isprintina: Jūsų KMI yra: (Per mažas svoris)

 

Kas dabar netaip?

 


<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) AND ($_POST['svoris'])) {
$ugis= $_POST['ugis'];
$svoris= $_POST['svoris'];
}
	if (is_numeric($ugis) && is_numeric($svoris)) {
	$KMI= $svoris / ($ugis * $ugis);
	$KMI= round_out($KMI, 2);
	} else {
		$return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
	} 
	if ($KMI <= 18.5) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)'; 
	}
	elseif ($KMI >= 40) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Trečio laipsnio nutukimas)'; 
	}
	elseif ($KMI >= 18.5 AND $KMI <= 24.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Normalus svoris)';
	}
	elseif ($KMI >= 25 AND $KMI <= 29.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Viršsvoris)';
	}
	elseif ($KMI >= 30 AND $KMI <= 34.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Pirmo laipsnio nutukimas)';
	}
	elseif ($KMI >= 35 AND $KMI <= 39.9) {
		$return= "Jūsų KMI yra: " . $KMI . ' (Antro laipsnio nutukimas)';
	} 

?>

 

Pabandyk ne su elseif, o su else if.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) AND isset($_POST['svoris'])) {
       $ugis= $_POST['ugis'];
       $svoris= $_POST['svoris'];
}
               if (is_numeric($ugis) && is_numeric($svoris)) {
               $KMI= $svoris / ($ugis * $ugis);
               $KMI= round_out($KMI, 2);
               } else {
                       $return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
               } 
               if ($KMI <= 18.5) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Per mažas svoris)'; 
               }
               elseif ($KMI >= 40) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Trečio laipsnio nutukimas)'; 
               }
               elseif ($KMI >= 18.5 AND $KMI <= 24.9) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Normalus svoris)';
               }
               elseif ($KMI >= 25 AND $KMI <= 29.9) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Viršsvoris)';
               }
               elseif ($KMI >= 30 AND $KMI <= 34.9) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Pirmo laipsnio nutukimas)';
               }
               elseif ($KMI >= 35 AND $KMI <= 39.9) {
                       $return= 'Jūsų KMI yra: ' . $KMI . ' (Antro laipsnio nutukimas)';
               } 

?>

 

Nope.. nieko gero. Vistiek kaip default rodo Jūsų KMI yra: (Per mažas svoris) + formule nesamones skaiciuoja

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima optimizuoti šitą kodą, bet tingiu daugiau ką nors taisyti. Bet šitas turėtų veikti.

P.S. jei neveikė bandyk dabar, prieš tai kai ką praleidau.

<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) && ($_POST['svoris'])) {
       $ugis= $_POST['ugis'];
       $svoris= $_POST['svoris'];
               if (is_numeric($ugis) && is_numeric($svoris)) {
                                       $KMI= $svoris / ($ugis * $ugis);
                                       $KMI= round_out($KMI, 2);
                       if($KMI < 18.5) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)'; 
                       }
                       elseif($KMI >= 40) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Trečio laipsnio nutukimas)'; 
                       }
                       elseif($KMI >= 18.5 && $KMI <= 24.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Normalus svoris)';
                       }
                       elseif($KMI >= 25 && $KMI <= 29.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Viršsvoris)';
                       }
                       elseif($KMI >= 30 && $KMI <= 34.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Pirmo laipsnio nutukimas)';
                       }
                       elseif($KMI >= 35 && $KMI <= 39.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Antro laipsnio nutukimas)';
                                               }

               } else {
                                        $return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
                               }
       } else {
         $return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
}

?>

 

$return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)';

į

$return= 'Jūsų KMI yra: ' . $KMI . ' (Per mažas svoris)'; 

" visur keisk į ' ir atvaizduos viską. Tik formulę liks sutvarkyt.

 

Neklaidink žmogaus

Redagavo Gugiss
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima optimizuoti šitą kodą, bet tingiu daugiau ką nors taisyti. Bet šitas turėtų veikti.

<?php

function round_out ($value, $places=0) {
 if ($places < 0) { $places = 0; }
 $mult = pow(10, $places);
 return ($value >= 0 ? ceil($value * $mult):floor($value * $mult)) / $mult;
}

if (isset($_POST['ugis']) && ($_POST['svoris'])) {
       $ugis= $_POST['ugis'];
       $svoris= $_POST['svoris'];
               if (is_numeric($ugis) && is_numeric($svoris)) {
				$KMI= $svoris / ($ugis * $ugis);
				$KMI= round_out($KMI, 2);
                       if($KMI < 18.5) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Per mažas svoris)'; 
                       }
                       elseif($KMI >= 40) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Trečio laipsnio nutukimas)'; 
                       }
                       elseif($KMI >= 18.5 && $KMI <= 24,9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Normalus svoris)';
                       }
                       elseif($KMI >= 25 && $KMI <= 29.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Viršsvoris)';
                       }
                       elseif($KMI >= 30 && $KMI <= 34.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Pirmo laipsnio nutukimas)';
                       }
                       elseif($KMI >= 35 && $KMI <= 39.9) {
                               $return= "Jūsų KMI yra: " . $KMI . ' (Antro laipsnio nutukimas)';
					}

               } else {
				 $return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
			}
       }
} else {
  $return="Duomenys įvesti neteisingai. Patikslinkite užklausą!.";
}

?>

 

Vuolia, veikia. ^_^ Ačiū. O optimizuot, tai biški "patrumpint" ta prasme? Nerašyk kaip, parašyk ką jei nesunku. Norėčiau dar pasižaist su šituo kodu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

if ( isset( $_POST['ugis'] ) && isset( $_POST['svoris'] ) ) {
$ugis = round( $_POST['ugis'] / 100, 2);
$svoris = $_POST['svoris'];
if ( is_numeric( $ugis ) && is_numeric( $svoris ) ) {
	$kmi = round( $svoris / ( $ugis * $ugis ), 2 );
	if ( $kmi <= 18.5 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (per mažas svoris)'; 
	} elseif ( $kmi >= 40 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (trečio laipsnio nutukimas)'; 
	} elseif ( $kmi >= 18.5 && $kmi <= 24.9 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (normalus svoris)';
	} elseif ( $kmi >= 25 && $kmi <= 29.9 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (viršsvoris)';
	} elseif ( $kmi >= 30 && $kmi <= 34.9 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (pirmo laipsnio nutukimas)';
	} elseif ( $kmi >= 35 && $kmi <= 39.9 ) {
		$kmi = 'Jūsų KMI yra: ' . $kmi . ' (antro laipsnio nutukimas)';
	}
} else {
	$kmi = 'Duomenys įvesti neteisingai. Patikslinkite užklausą!';
}
}

 

Pagalvok kas bus, jei pvz. KMI lygus 29.99

 

if ( isset( $_POST['ugis'] ) && isset( $_POST['svoris'] ) ) {
       $ugis = round( abs ( $_POST['ugis'] ) / 100, 2);
       $svoris = abs( $_POST['svoris'] );
       if ( is_numeric( $ugis ) && is_numeric( $svoris ) ) {
               $kmi = $svoris / pow($ugis, 2);
	$str = '';
               if ( $kmi < 18.5 ) {
                       $str = ' (per mažas svoris)'; 
               }  elseif ( $kmi >= 18.5 && $kmi <= 25 ) { // 18.5 - 25.0 normalus svoris
                       $str = ' (normalus svoris)';
               } elseif ( $kmi > 25 && $kmi <= 30 ) {
                       $str = ' (viršsvoris)';
               } elseif ( $kmi > 30 && $kmi <= 35 ) {
                       $str = ' (pirmo laipsnio nutukimas)';
               } elseif ( $kmi > 35 && $kmi <= 40 ) {
                       $str = ' (antro laipsnio nutukimas)';
               } else {
                       $str = ' (trečio laipsnio nutukimas)';
               }
               $kmi = 'Jūsų KMI yra: ' . round($kmi, 2) . $str;
       } else {
               $kmi = 'Duomenys įvesti neteisingai. Patikslinkite užklausą!';
       }
}

Redagavo DaliusK
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...