Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wypisanie danych z bazy w tabeli
Forum PHP.pl > Forum > PHP
veyron
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.
Kshyhoo
  1. $dane = (isset($row['k1'])) ? $row['k1'] : '&nbsp;';

Jeżeli są dane, wyświetla je, danych nie ma, daje twardą spację.
Albaniusz
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>';
veyron
dzieki, obydwie odpowiedzi sie przydaly.
pozdrawiam.
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.