Zamiana liczb na nominały graficzne.

evil17

Użytkownik
Dołączył
Październik 17, 2010
Posty
18
Witam, mam pytanie macie jakaś funkcję lub pomysł jak zamienić liczny na kwoty w formie graficznej ?

W bazie mamy kwote w groszach


Kod:
<?php
$kwota=2350;
$ile=$kwota/100;
echo $ile;
?>

Czyli mając 23,5 powinno wyświetlić:

Obrazek 20 złotówki, 2 złotówki, 1 złoty i 50 groszy.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Edytuj/Usuń wiadomość
 

fortowiec225

Użytkownik
Dołączył
Maj 20, 2012
Posty
149
Można i w ten sposób ale trzeba mieć kilka obrazów graficznych przez co zmniejszymy pojemność hostingu.

PS Używaj poprawnie znaczników (X)HTML :)
Kod:
<img src="img/obraz.png" alt="obraz" />
 

evil17

Użytkownik
Dołączył
Październik 17, 2010
Posty
18
OK, tylko powiedz mi jaką funkcję zastosować do zamiany liczb ma moninały w postaci graficznej tak jak w temacie.
 

evil17

Użytkownik
Dołączył
Październik 17, 2010
Posty
18
Zobacz zaczynam tak, użytkownik z innego fora mi doradził:

<?php
$ile=23.5;
//$ile=$bank;

$przez100=$ile/100;
$przez50=$ile/50;
$przez20=$ile/20;
$przez10=$ile/10;
$przez5=$ile/5;
$przez2=$ile/2;
$przez1=$ile/1;

echo $przez100;
echo'<br>';
echo $przez50;
echo'<br>';

echo $przez20;
echo'<br>';

echo $przez10;
echo'<br>';

echo $przez5;
echo'<br>';

echo $przez2;
echo '<br>';
echo $przez1;
echo'<br>';

if($przez100>=1)
{
echo'Daje 100';
}




/*
wynik=23,5/100<0 więc nic nie robisz
wynik=23,5/50<0 nic nie robimy
wynik=23,5/20>0 ! tutaj mamy wynik 1 czyli jedna 20
odejmujemy tą 20 zostaje nam 3,5 i sprawdzamy dalej
wynik=3,5/10<0 nic nie robimy
wynik=3,5/5<0 ...
wynik= 3,5/2>0 tutaj również wynik=1 więc dajemy 1 dwuzłotówkę i odejmujemy 2zł
wynik=1,5/1>0 mamy jedną złotówkę
wynik=0,5/0,5>0 i ostatecznie zostaje nam 50groszy 0,5 a po odjęciu mamy już tylko 0 więc konczymy
*/
?>
 

fortowiec225

Użytkownik
Dołączył
Maj 20, 2012
Posty
149
Jeżeli, chcesz mieć na jakimś np. zielonym dolarku byle jaką kwotę to piszesz tekst na obrazku (najlepiej w PNG) - tu masz spis treści do biblioteki GD, a tu przykład.

Chyba, że konkretnie chcesz wartość 100 zł w prawdziwym banknocie (wtedy musisz mieć te obrazy) i przy wartości zmiennej np. 100 wyświetla się obraz, używasz to tego instrukcji warunkowych, a jak masz w groszach mniej niż 50 to zaokrąglasz w dół (funkcja floor) i odwrotnie.
 

evil17

Użytkownik
Dołączył
Październik 17, 2010
Posty
18
Mam obrazu w png. Tytlko teraz np. mając kwotę 76,5zł skrypt musi to wyświetlić w postaci obrazka 50 zł, 20 zł, 5zł, 1zł, 0.5zł
 

fortowiec225

Użytkownik
Dołączył
Maj 20, 2012
Posty
149
Dobra, udało mi się zrobić za Ciebie to zadanko daje Ci gotowca. Jak coś to mogę wytłumaczyć każdą linijkę na życzenie. Wyświetlanie ilości pieniędzy ze zmiennej super globalnej bank, czyli wpisujesz na stronie skrypt?bank=76.5
Kod:
<?php
If (isset($_GET['bank'])) {
	$bank = $_GET["bank"];
} else {
	$bank = 100;
}

echo 'Suma: '.$bank.' zł<br /><br />';

$a100 = $bank / 100;
$a50 = $bank / 50;
$a20 = $bank / 20;
$a5 = $bank / 5;
$a1 = $bank / 1;
$b5 = $bank / 0.5;

If ($a100 > 0) {
	$bank = $bank - floor($a100) * 100;
	$a50 = $bank / 50;
	$a20 = $bank / 20;
	$a5 = $bank / 5;
	$a1 = $bank / 1;
	$b5 = $bank / 0.5;
	echo str_repeat('<img src="img/a100.png" alt="a100" />', $a100);
}

If ($a50 > 0) {
	$bank = $bank - floor($a50) * 50;
	$a20 = $bank / 20;
	$a5 = $bank / 5;
	$a1 = $bank / 1;
	$b5 = $bank / 0.5;
	echo str_repeat('<img src="img/a50.png" alt="a50" />', $a50);
}

If ($a20 > 0) {
	$bank = $bank - floor($a20) * 20;
	$a5 = $bank / 5;
	$a1 = $bank / 1;
	$b5 = $bank / 0.5;
	echo str_repeat('<img src="img/a20.png" alt="a20" />', $a20);
}

If ($a5 > 0) {
	$bank = $bank - floor($a5) * 5;
	$a1 = $bank / 1;
	$b5 = $bank / 0.5;
	echo str_repeat('<img src="img/a5.png" alt="a5" />', $a5);
}

If ($a1 > 0) {
	$bank = $bank - floor($a1) * 1;
	$b5 = $bank / 0.5;
	echo str_repeat('<img src="img/a1.png" alt="a1" />', $a1);
}

If ($b5 > 0) {
	$bank = $bank - floor($b5) * 0.5;
	echo str_repeat('<img src="img/b5.png" alt="b5" />', $b5);
}
?>
 
Ostatnia edycja:
Do góry Bottom