Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlenie wyników w jednym wierszu
Forum PHP.pl > Forum > PHP
lukasheek88
Witajcie,

mam zapytanie
  1. SELECT id, nazwa, opis, wartosc, DATA, przedzial


I teraz tak, pole przedzial zawiera wartosci 1 lub 2 lub 3. Chciałbym powyższe wyniki wyświetlić tak by, w zależności od przedzialu wartosc znajdowala sie w odpowiedniej komorce tabeli.

Np. Mam takie rekordy w bazie danych

ID | NAZWA | OPIS | WARTOSC | DATA | PRZEDZIAL
1 ROWER | BRAK | 154 | 2017-05-15 | 1
2 ROWER | BRAK | 254 | 2017-06-14 | 2
3 ROWER | BRAK | 125 | 2017-04-10 | 1
4 ROWER | BRAK | 112 | 2017-03-15 | 3
5 ROWER | BRAK | 208 | 2017-06-12 | 2

Chcialbym wynik wyswietlic w taki sposób aby wartosc trafiala do odpowiedniej kolumny tabeli w zaleznosci od przedzialu

Miałoby to tak wyglądać:

  1. <tr><td>Nazwa<td><td>Przedzial 1</td><td>PRzedzial 2</td><td>Przedzial 3</td></tr>
  2. <tr><td>ROWER</td><td>154</td><td>254</td><td>112</td></tr>
  3. <tr><td>ROWER</td><td>125</td><td>208</td><td></td></tr>
  4.  


Ktoś podpowie ?


Puszy
Sortowanie tablicy, foreach, instrukcja warunkowa. Ewentualnie pokuś się o wielokrotnego LEFT JOINa i uzyskaj strukturę tabeli z poziomu bazy.
Neutral
  1. <?php
  2. $mysqli = new mysqli('localhost','root','','lukas');
  3.  
  4. $query1 = "select wartosc,nazwa from lukas where przedzial=1";
  5. $query2 = "select wartosc,nazwa from lukas where przedzial=2";
  6. $query3 = "select wartosc,nazwa from lukas where przedzial=3";
  7. $result1 = $mysqli->query($query1);
  8. $result2 = $mysqli->query($query2);
  9. $result3 = $mysqli->query($query3);
  10.  
  11. while($row = $result1->fetch_assoc()) {
  12. $arr0[]=$row['wartosc'];
  13. $err0[]=$row['nazwa'];
  14. }
  15. while($row2 = $result2->fetch_assoc()) {
  16. $arr1[]=$row2['wartosc'];
  17. $err1[]=$row2['nazwa'];
  18. }
  19. while($row3 = $result3->fetch_assoc()) {
  20. $arr2[]=$row3['wartosc'];
  21. $err2[]=$row3['nazwa'];
  22. }
  23.  
  24. echo "<table>";
  25. echo "<tr><th>Nazwa</th><th>Przedział 1</th><th>Przedział 2</th><th>Przedział 3</th></tr>";
  26. $theb = max(count($arr0),count($arr1),count($arr2));
  27.  
  28. for($i=0;$i<$theb;$i++){
  29.  
  30. if(!isset($arr0[$i])){
  31. $arr0[$i]=null;
  32. }if(!isset($arr1[$i])){
  33. $arr1[$i]=null;
  34. }if(!isset($arr2[$i])){
  35. $arr2[$i]=null;
  36. }
  37.  
  38. if(!isset($err0[$i])){
  39. $err0[$i]=null;
  40. }if(!isset($err1[$i])){
  41. $err1[$i]=null;
  42. }if(!isset($err2[$i])){
  43. $err2[$i]=null;
  44. }
  45. echo "
  46.  
  47. <tr><td>$err0[$i]/$err1[$i]/$err2[$i]</td><td>$arr0[$i]</td>
  48.  
  49. <td>$arr1[$i]</td>
  50.  
  51. <td>$arr2[$i]</td></tr>
  52.  
  53. ";
  54. }
  55.  
  56. echo "</table>";
  57. ?>
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.