Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Formatowanie tekstu
Forum PHP.pl > Forum > Przedszkole
ayo1001
Cześć,

Mam mały problem.
Importuje zmianę procentową spółki z formatu .xml

W jaki sposób można uzyskać funkcję:
- Jeśli zmiana procentowa nie jest na "-" to dodaje class="green"
- Jeśli jest to dodaje class="red" ?

Kod:
  1. <?php print $percentagechange; ?>

i wynik:
  1. -2,50%
Raito
  1. if($procent >= 0){
  2. echo 'class="green"';
  3. }else{
  4. echo 'class="red"';
  5. }
ayo1001
Wszystko pięknie śmiga, tylko pojawiają się 2 problemy:
1. Jeżeli jest wartość np. 0,50 to pokazuje ją na czerwono
2. Tak samo wartość 0,00
Beniooo
  1. $procent = str_replace(",", ".", $procent);
  2. $procent = doubleval($procent);
  3. if($procent > 0.00){
  4. echo 'class="green"';
  5. }else{
  6. echo 'class="red"';
  7. }
ayo1001
Cytat(Beniooo @ 6.04.2015, 19:20:29 ) *
  1. $procent = str_replace(",", ".", $procent);
  2. $procent = doubleval($procent);
  3. if($procent > 0.00){
  4. echo 'class="green"';
  5. }else{
  6. echo 'class="red"';
  7. }


Super, działa!

Jak można jeszcze dodać 3 zmienną:
- jeżeli jest 0.00 to dodaje class="neutral" ?
Fred1485
Chyba tak:

  1. $procent = str_replace(",", ".", $procent);
  2. $procent = doubleval($procent);
  3. if($procent == 0.00) {
  4. echo 'class="neutral"';
  5. }
  6. elseif($procent > 0.00){
  7. echo 'class="green"';
  8. }else{
  9. echo 'class="red"';
  10. }
Aqu
  1. if($procent > 0.00){
  2. echo 'class="green"';
  3. } elseif($procent == 0.00) {
  4. echo 'class="neutral"';
  5. } else{
  6. echo 'class="red"';
  7. }
ayo1001
Cytat(Fred1485 @ 6.04.2015, 19:29:25 ) *
Chyba tak:

  1. $procent = str_replace(",", ".", $procent);
  2. $procent = doubleval($procent);
  3. if($procent == 0.00) {
  4. echo 'class="neutral"';
  5. }
  6. elseif($procent > 0.00){
  7. echo 'class="green"';
  8. }else{
  9. echo 'class="red"';
  10. }


Działa, dzięki.


Cytat(Aqu @ 6.04.2015, 19:29:56 ) *
  1. if($procent > 0.00){
  2. echo 'class="green"';
  3. } elseif($procent == 0.00) {
  4. echo 'class="neutral"';
  5. } else{
  6. echo 'class="red"';
  7. }


Również działa.

Mam jeszcze ostatnie pytanie.
Teraz pokazuje mi wartość "0" (bez procentów) w kolorze "neutral" czyli tak jak powinno.
Jak zmienić "0" na "0,00%" ?
Fred1485
Nie wiem czy o to ci chodzi, ale jak chcesz dwa miejsca po przecinku to ja robiłem tak:

  1. $zmienna = 1.456532234;
  2.  
  3. echo round($zmienna, 2). ' %';
ayo1001
Cytat(Fred1485 @ 6.04.2015, 20:03:54 ) *
Nie wiem czy o to ci chodzi, ale jak chcesz dwa miejsca po przecinku to ja robiłem tak:

  1. $zmienna = 1.456532234;
  2.  
  3. echo round($zmienna, 2). ' %';


Chodziło mi o to, że wyświetlało mi "0", a powinno "0,00%"
Przyda się na przyszłość wink.gif

Dodałem:
  1. print ".00%";


i wszytko pięknie działa.

Dzięki Panowi i Panie (jeżeli były) za pomoc. Wszystkim należy się PIWO smile.gif
Raito
Ew. możesz użyć number_format.
ayo1001
a i jeszcze zapomniałem

Jak zliczyć wszystkie klasy, które dają wynik:
- "green"
- "neutral"
- "red"

np:
Wyniki:
Green: 10
Neutral: 2
Red: 5

Da się to zrobić bez bazy danych ?
Beniooo
  1. $count = explode(";", file_get_contents('plik.txt'));
  2. $procent = str_replace(",", ".", $procent);
  3. $procent = doubleval($procent);
  4. if($procent == 0.00) {
  5. echo 'class="neutral"';
  6. $count[0] += 1;
  7. }
  8. elseif($procent > 0.00){
  9. echo 'class="green"';
  10. $count[1] += 1;
  11. }else{
  12. echo 'class="red"';
  13. $count[2] += 1;
  14. }
  15. file_put_contents('plik.txt', implode(';', $count))

Tylko na początek w katalogu ze skryptem stwórz plik plik.txt z zawartością 0;0;0
(neutral);(green);(red)
ayo1001
Cytat(Beniooo @ 6.04.2015, 20:35:15 ) *
  1. $count = explode(";", file_get_contents('plik.txt'));
  2. $procent = str_replace(",", ".", $procent);
  3. $procent = doubleval($procent);
  4. if($procent == 0.00) {
  5. echo 'class="neutral"';
  6. $count[0] += 1;
  7. }
  8. elseif($procent > 0.00){
  9. echo 'class="green"';
  10. $count[1] += 1;
  11. }else{
  12. echo 'class="red"';
  13. $count[2] += 1;
  14. }
  15. file_put_contents('plik.txt', implode(';', $count))

Tylko na początek w katalogu ze skryptem stwórz plik plik.txt z zawartością 0;0;0
(neutral);(green);(red)


Nie działa to zupełnie tak jak chciałem.
Pokazuje "class="green" -> miała być suma "green"
Po odświeżeniu strony plik.txt ma 2x więcej wskazanych treści.
Beniooo
Powiedz mi na początek, co Ty chcesz zrobić z tą sumą?
sher
  1. $count = explode(";", file_get_contents('plik.txt'));
  2. $procent = str_replace(",", ".", $procent);
  3. $procent = doubleval($procent);
  4. if($procent == 0.00) {
  5. echo 'class="neutral"';
  6. $neutral++;
  7. }
  8. else if($procent > 0.00){
  9. echo 'class="green"';
  10. $green++;
  11. }
  12. else{
  13. echo 'class="red"';
  14. $red++;
  15. }
  16.  
  17. echo 'Green:'.$green;
  18. echo 'Red:'.$red;
  19. echo 'Neutral:'.$green;

O to chodzi? Może nie działać, nie testowałem :x
ayo1001
Cytat(Beniooo @ 6.04.2015, 21:55:34 ) *
Powiedz mi na początek, co Ty chcesz zrobić z tą sumą?


Zliczyć wszystkie klasy (green, neutral, red), które mi się pokazały jako wynik z formatowania .xml

Przykład:
Otrzymałem wynik class="green"
A, B, C, D

Wynik class="neutral"
E, F

Wynik class="red"
G, H, I, J, K

Czy można jakoś na bieżąco zliczać dane wartości w poszczególnych klasach:
Green: 4
Neutral: 2
Red: 5
Beniooo
No skoro na bieżąco te, które zwróci Ci formatowanie, to ci wystarczy:
  1. $neutral = $green = $red = 0;
  2. $procent = doubleval(str_replace(",", ".", $procent));
  3. if($procent == 0.00) {
  4. echo 'class="neutral"';
  5. $neutral++;
  6. }
  7. else if($procent > 0.00){
  8. echo 'class="green"';
  9. $green++;
  10. }
  11. else{
  12. echo 'class="red"';
  13. $red++;
  14. }
  15.  
  16. echo 'Green:'.$green;
  17. echo 'Red:'.$red;
  18. echo 'Neutral:'.$green;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.