Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wypisanie danych z bazy w tabeli, z warunkowym wypisaniem jednej kolumny
veyron
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.04.2006

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


witam
posiadam kawalek kodu, ktorym wybieram z bazy mysql dane i wypisuje je w tabelce (kilka wierszy) i to ponizej dziala sobie ok. chcialbym jednak, aby jedna kolumna K2 zostala wypisana tylko w przypadku, jesli wartosc k2 w bazie nie jest pusta, przy czym moze sie zdazyc tak, ze wynikiem zapytania bedzie kilka rekordow i dla niektorych wartosc k2 bedzie pusta, a dla innych nie. i teraz w przypadku jak sa jakiekolwiek wartosci to wypisuje kolumne K2, a jak we wszystkich rekordach k2 nie ma wartosci, to wtedy nie wyswietla kolumny K2. bede wdzieczny za pomoc/nakierownie/pomysl jak to zrobic.
  1. print '<table cellpadding="0" cellspacing="0" >
  2.  
  3. <thead>
  4. <tr>
  5. <th>Lp.</th>
  6. <th>K1</th>
  7. <th>K2</th>
  8. <th>K3</th>
  9. <th>K4</th>
  10. </tr>
  11. </thead>
  12.  
  13. <tbody>';
  14.  
  15. $sql->query('
  16.  
  17. SELECT SUM(pf.kom1) AS k1, pf.kom2 AS k2, sw.k3, jm.k4,
  18. FROM tabela1 pf
  19. INNER JOIN tabela2 sw ON sw.id_t2 = pf.id_t2
  20. INNER JOIN tabela3 jm ON jm.id_t3 = pf.id_t3
  21. WHERE pf.id_t1 = \'8\'
  22. GROUP BY pf.id_t2
  23. ORDER BY sw.k3 DESC
  24. ');
  25. $i = 1;
  26. while($row = $sql->fetchArray()) {
  27.  
  28. print '<tr>
  29. <td>'.$i.'</td>
  30. <td>'.nl2br($row['k1']).'</td>
  31. <td>'.$row['k2'].'</td>
  32. <td>'.$row['k3'].'</td>
  33. <td>'.$row['k4'].'</td>
  34. </tr>';
  35. $i++;
  36. }
  37. print '</tbody>
  38. </table>';

pozdrawiam.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




  1. $dane = (isset($row['k1'])) ? $row['k1'] : '&nbsp;';

Jeżeli są dane, wyświetla je, danych nie ma, daje twardą spację.


--------------------
Go to the top of the page
+Quote Post
Albaniusz
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 1
Dołączył: 24.01.2012

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


Ustawił bym sobie flagę
  1. $czyWypisywacKolumne = false;

potem pobrał dane z bazy do tablicy, odpytał każdy pobrany wiersz, np. poprzez foreach(), i sprawdził, czy w kolumnie K2 występuje conajmniej jedno pole zawierające wartość, jeżeli tak, przestawiam flagę na true.

Przy wypisywaniu danych z tablicy wyniku zapytania testuję stan flagi:
  1. print '<tr>
  2. <td>'.$i.'</td>
  3. <td>'.nl2br($row['k1']).'</td>';
  4. if ($czyWypisywacKolumne) {
  5. print '<td>'.$row['k2'].'</td>';
  6. }
  7. print '<td>'.$row['k3'].'</td>
  8. <td>'.$row['k4'].'</td>
  9. </tr>';
Go to the top of the page
+Quote Post
veyron
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.04.2006

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


dzieki, obydwie odpowiedzi sie przydaly.
pozdrawiam.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 12:32