Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pętla i unikalne wyniki
kristaps
post
Post #1





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

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


Witam, mam pętlę, która zwraca mi z bazy całe zastosowanie danej części.

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


W efekcie otrzymuję coś takiego:

MARKA - ILOŚĆ

NP:

MARKA 1 - 2
MARKA 2 - 5
MARKA 3 - 1

...

Zdarza się, że dana marka ma ten sam początek, jednak unikalny dodatek.

MARKA 1 COS
MARKA 1 COS2
MARKA 2 COS
MARKA 2 COS4

Jak w takim przypadku zwrócić tylko: marka 1, marka 2, marka 3, ..., ignorując wszystkie inne możliwe "dodatki"? Ma ktoś pomysł na wyrażenie regularne?

Ten post edytował kristaps 15.06.2012, 16:05:29
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Po pierwsze, najpierw pobierz wyniki do tablicy, potem zrób na nich odpowiedmie działania a następnie wyświetl.
Na razie masz tak, że od razu po pobraniu wiersza z bazy wyświetlasz go, więc trudno tu cokolwiek obliczać, czy porównywać.

No i co do sedna problemu.

Załóżmy, że masz w bazie takie wpisy :

Koszula męska zielona
Koszula męska niebieska
Koszula damska zielona
Koszula męska niebieska

I czy skrypt ma wyświetlić po prostu "Koszula", czy może "Koszula męska" oraz "Koszula damska" ?

Oba warianty pasują do Twojego opisu wink.gif


--------------------
:)
Go to the top of the page
+Quote Post
kristaps
post
Post #3





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

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


Witam, dzięki za zainteresowanie tematem.

Na szczęście frazy do usunięcia znajdują się w nawiasach, myślałem przed chwilą o wyrażeniu regularnym i wymyśliłem coś takiego:

  1. [(][a-zA-Z0-9 ]*[)]


Także w ten sposób mógłbym się pozbyć zbędnego nazewnictwa - o ile nic nie pomieszałem. wink.gif

Co do Twojego pytania, to "koszula męska". Ogólnie chciałbym wyświetlić tylko raz powtarzającą się frazę.

Masz jakiś pomysł?

Z góry dziękuje za pomoc,
pozdrawiam.
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Pokaż nam jakieś przykładowe wpisy (tak koło 10) i jaki chcesz mieć wynik.


--------------------
:)
Go to the top of the page
+Quote Post
kristaps
post
Post #5





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

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


Witam, a to istotne? Zależy mi na tym by zwracać te same frazy tylko jeden raz. Czyli jeżeli mam tabele, która ma 20 rekordów - 10 x POMIDOR, 5 X JABŁKO, 5 X GRUSZKA, w jednym miejscu pobieram wszystko (pętla wyżej) i wyświetlam to w postaci danych tabelarycznych. A w innym chciałbym wyświetlić to jako unikalne wyniki, czyli: pomidor, jabłko, gruszka. Jeden raz.



Ten post edytował kristaps 18.06.2012, 11:54:30
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 - 18:41