Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Wyświetlanie wyników w tabeli
reed
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.12.2003
Skąd: Lodz

Ostrzeżenie: (0%)
-----


Chciałem zrobić wyświetlanie wyników w tabeli w zależności na którą instrukcję warunkową trafimy...

Mam aktualnie fragment, który może nie jest najpiękniejszy ale działa sprawnie. Wyświetla wyniki jeden pod drugim, alfabetycznie i koloruje CSS w zależności od tego na jakiego IFa trafi

  1. $result = json_decode($i, TRUE);
  2.  
  3. // Sortuję tablicę alfabetycznie, po kluczach
  4. ksort($result);
  5.  
  6. // Wykonuję petlę, która ma za zadanie sprawdzić poniższe warunki
  7. foreach ($result as $i => $value) {
  8.  
  9. //1. Wyświetl wyniki tylko tam gdzie wartości są liczbowe
  10.  
  11. if (is_numeric ($value)) {
  12. echo $i;
  13. }
  14.  
  15. //2. Wyświetl wyniki tylko tam gdzie wartość jest "true"
  16. if ($value == "true")
  17. echo $i."ON";
  18.  
  19. //3. Na koniec wyświetl wyniki tam gdzie wartość jest "false"
  20. if ($value == "false")
  21. echo $i."OFF";
  22. }


chciałbym, żeby to była tablica 3 kolumnowa, która by wyglądała mniej więcej tak:

  1. <tr>
  2. <td>Ilość</td>
  3. <td>TRUE</td>
  4. <td>FALSE</td>
  5. </tr>
  6. <tr>
  7. <td>11</td>
  8. <td>ON</td>
  9. <td>OFF</td>
  10. </tr>
  11. <tr>
  12. <td>12</td>
  13. <td>ON</td>
  14. <td>OFF</td>
  15. </tr>
  16. <tr>
  17. <td>24</td>
  18. <td>ON</td>
  19. <td>OFF</td>
  20. </tr>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Lukeup
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 5
Dołączył: 13.04.2018

Ostrzeżenie: (0%)
-----


W tym konkretnym przypadku, lepiej zamieścić tabelę wewnątrz echo. Natomiast lepszą praktyką jest zamykanie PHP i otwieranie go we właściwym miejscu np.
  1. <td><?php echo $zmienna; ?></td>



  1. <?php
  2. $result = json_decode($i, TRUE);
  3.  
  4. // Sortuję tablicę alfabetycznie, po kluczach
  5. ksort($result);
  6.  
  7. echo "<table><td>Ilość</td>
  8. <td>TRUE</td>
  9. <td>FALSE</td>
  10. </tr>";
  11. // Wykonuję petlę, która ma za zadanie sprawdzić poniższe warunki
  12. foreach ($result as $i => $value) {
  13.  
  14. echo "<tr>";
  15. if (is_numeric ($value)) {
  16. echo "<td>".$i."</td>";
  17. }
  18.  
  19. //2. Wyświetl wyniki tylko tam gdzie wartość jest "true"
  20. if ($value == "true")
  21. echo "<td>".$i."ON</td>";
  22.  
  23. //3. Na koniec wyświetl wyniki tam gdzie wartość jest "false"
  24. if ($value == "false")
  25. echo "<td>".$i."OFF</td>";
  26.  
  27. echo "</tr>";
  28. }
  29. echo "</table>";
  30. ?>


Ten post edytował Lukeup 14.04.2018, 06:42:52
Go to the top of the page
+Quote Post
reed
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.12.2003
Skąd: Lodz

Ostrzeżenie: (0%)
-----


Coś nie do końca to działa. W chwili obecnej mam tabelę, (3 nagłówki) a i tak wszystko jest umieszczane w kolumnie pierwszej...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo Lukeup zamiast tworzyc wiersz co trzy elementy, to tworzy wiersz co kazdy element

Tu masz rozwiazanie
http://nospor.pl/co-trzy-wyswietlanie-danych.html
Go to the top of the page
+Quote Post
emillo91
post
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Bo masz HTML tagi w warunkach. Jeżeli warunek się nie spełni to nie doda odpowiednio kolumny (znacznik <td>). W warunkach musiałbyś dawać wartość null albo pustą kolumnę (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@emillo91 jak juz pisalem: to nic nie zmieni skoro TR jest generowany dla kazdej opcji...
Go to the top of the page
+Quote Post
emillo91
post
Post #7





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


No tak (IMG:style_emoticons/default/sciana.gif) . Ale zauważ, że będzie chciał generować przy każdej iteracji 3 kolumny więc jeżeli któryś warunek się nie spełni to może dojść do sytuacji
  1. <tr>
  2. <td>2</td></td>ON</td>
  3. </tr>
  4. <tr>
  5. <td>OFF</td>
  6. </tr>
  7. <tr>
  8. <td>4</td><td>ON</td><td>OFF</td>
  9. </tr>

Odnośnie tagu zamykającego wiersz w tabeli to nie zauważyłem, że jest iterowany każdorazowo
Go to the top of the page
+Quote Post
reed
post
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 13.12.2003
Skąd: Lodz

Ostrzeżenie: (0%)
-----


Sorry za LAG ale... była Majówka (IMG:style_emoticons/default/tongue.gif)

Czyli nie da się tego zrobić w taki sposób jak wyżej... a może podejść od innej strony.

Tj. pozbierać najpierw dane do tablicy po kolei w grupach i potem wyświetlić?
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@reed przeciez podalem ci rozwiazanie. Co jest z nim nie tak?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:58