Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyniki SQL w tabeli, usuwanie duplikatów
kristaps
post
Post #1





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Witam, od pewnego czasu głowie się nad pewnym problemem. Mam bazę danych fdb, z której wyniki przedstawiam w tabeli. Nie mogę w tym przypadku użyć DISTINCT, dane pobieram za pomocą odpowiednich procedur.

W efekcie otrzymuję taką tabelę (dla przykładu):


| Gruszki |2 | 2,20 |
| Gruszki |11| 1,50 |
| Gruszki |12| 2,50 |
| Jabłko |2 | 3,50 |
| Jabłko |12| 2,21 |
| Śliwki |1 | 2,50 |
| Śliwki |2 | 1,50 |

Zależy mi żeby grupować pierwszą kolumnę w tabeli:

| Gruszki |2 | 2,20 |
| |11| 1,50 |
| |12| 2,50 |
| Jabłko |2 | 3,50 |
| |12| 2,21 |
| Śliwki |1 | 2,50 |
| |2 | 1,50 |

W efekcie muszę otrzymać taki kod:

  1. <tr><td>Gruszki</td><td>2</td><td>2,20</td></tr>
  2. <tr><td> </td><td>11</td><td>1,50</td></tr>
  3. <tr><td> </td><td>12</td><td>2,20</td></tr>
  4. <tr><td>Jabłko</td><td>2</td><td>3,50</td></tr>
  5. <tr><td> </td><td>12</td><td>2,21</td></tr>


Próbowałem już to ugryźć na wiele sposobów, od array_unique po wyrażenia regularne.

  1. <?php
  2. echo "<table class = test>";
  3. $kody = '';
  4. $stmt2 = "SELECT * FROM PRZYKLAD(owoc, ilosc, cena)";
  5. $sth2 = ibase_query($dbh, $stmt2);
  6.  
  7. $i = 0;
  8. while ($row2 = ibase_fetch_assoc($sth2)) {
  9.  
  10. $row_class = table_row_format($i);
  11.  
  12. $owoce.= "<tr class=\"$row_class\"><td>" . $row2["owoc"] . ":</td><td>" . $row2["ilosc"] . "</td><td>" . $row2["cena"] . "</td></tr>";
  13.  
  14. }
  15. echo $kody;
  16. echo "</table>";
  17. ?>


Czy ma ktoś pomysł jak uzyskać taki efekt? Czyli jak sprawdzać czy $row2["owoc"] już wystąpiło i jeśli tak zamieniać go na spację ' '. Ewentualnie zrobić to po wykonaniu pętli na zmiennej $owoce?

Z góry dziękuję za pomoc,
pozdrawiam.

Ten post edytował kristaps 20.06.2012, 15:35:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


Raczej tak jak myślisz
Nospor
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Powinno zadziałać:
  1. <?php
  2. $owoc = NULL;
  3.  
  4. echo "<table class = test>";
  5.  
  6. $kody = '';
  7.  
  8. $stmt2 = "SELECT * FROM PRZYKLAD(owoc, ilosc, cena)";
  9.  
  10. $sth2 = ibase_query($dbh, $stmt2);
  11.  
  12.  
  13.  
  14. $i = 0;
  15.  
  16. while ($row2 = ibase_fetch_assoc($sth2)) {
  17.  
  18.  
  19.  
  20. $row_class = table_row_format($i);
  21.  
  22.  
  23.  
  24. $owoce.= "<tr class=\"$row_class\"><td>" . ($row2["owoc"] != $owoc ? $row2["owoc"] : '') . ":</td><td>" . $row2["ilosc"] . "</td><td>" . $row2["cena"] . "</td></tr>";
  25.  
  26. $owoc = $row2["owoc"];
  27.  
  28. }
  29.  
  30. echo $kody;
  31.  
  32. echo "</table>";
  33.  
  34. ?>
Go to the top of the page
+Quote Post
kristaps
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Cholera, nie wpadłem na to, a podobnie przecież rozwiązałem kolory wierszy.

Dziękuję za pomoc, oba posty były bardzo przydatne.
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: 19.08.2025 - 07:29