Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Wyświetlanie tylko 1 elementu spośród kilku takich samych
puz219
post 23.09.2007, 11:15:14
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

jak zrobić coś takiego, żeby podczas pobierania z bazy myql pokazywało tylko 1 wynik, jeśli wartości pola są takie same.

Jeśli napisałem to niezrozumiale, to już podaję przykład.

Np. w bazie mysql mam pole rok.

Wartości tego pola będą jak wiemy różne, np dla 3 rekordów będzie 2006, a dla 1 będzie 2007.

I teraz chciałbym, żeby na stronie był link, np. taki:
  1. <?php
  2. echo "<a href=\"rok.php?year=".$wiersz["rok"]."\">".$wiersz["rok"]."</a>";
  3. ?>

i żeby podczas wyświetlania pokazywało tylko jeden link 2006, a nie 3.

Czy jest może do tego jakaś funkcja albo coś, bo nie mam pojęcia jak rozwiązać ten problem.

Proszę o pomoc

Ten post edytował puz219 23.09.2007, 11:16:31
Go to the top of the page
+Quote Post
c3zi
post 23.09.2007, 11:22:52
Post #2





Grupa: Zarejestrowani
Postów: 266
Pomógł: 20
Dołączył: 15.11.2006
Skąd: Koszalin

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


Witam,


Zainteresuje sie klauzulą DISTINCT


--------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Go to the top of the page
+Quote Post
puz219
post 3.10.2007, 13:22:13
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Znów mam problem związany z wyświetlaniem 1 elementu spośród kilku takich samych, ale tego nie da się już zrobić za pomocą klauzuli DISTINCT.

Mianowicie chodzi o to, że mam w bazie tabelę z dwoma polami textID(INT) i tresc(TEXT).

Przypuśćmy, że mam trzy rekordy w tej tabeli przy czym w polu textID do wszystkich jest przypisana wartość 1, a pola tresc wyglądają następująco:

dla 1 rekordu:
linijka1|linijka2|linijka3

dla 2 rekordu:
linijka1|linijka2|linijka3|linijka4|linijka5

i dla 3 rekordu:
|linijka8

I teraz daję zpytanie:
  1. SELECT DISTINCT tresc FROM tabela WHERE textID='1';

ale w wyniku dostanę coś takiego (niezależnie od tego czy dam klauzulę DISTINCT czy nie):
linijka1|linijka2|linijka3linijka1|linijka2|linijka3|linijka4|linijka5|linijka8,

czyli wszystko co mam w tym polu we wszystkich rekordach razem, a ja chciałbym, żeby te same wartości pokazało tylko raz, czyli, żeby wyglądało tak:
linijka1|linijka2|linijka3|linijka4|linijka5|linijka8.

jak coś takiego zrobić??

Czy mógłby ktoś dać chociaż jakąś wskazówkę lub jeśli sie tego nie da zrobić, to po prostu napiszcie, że sie nie da!

Naprawdę nie mam pojęcia od czego tak naprawdę zacząć, żeby osiągnąć taki efekt.

proszę o pomoc.

Pozdrawiam.

Ten post edytował puz219 30.09.2007, 20:50:17
Go to the top of the page
+Quote Post
metal
post 3.10.2007, 18:56:36
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 1.02.2007
Skąd: Sanok

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


Nalezy uzyc GROUP BY year



--------------------
webview - tworzenie stron www


--------------------
zmodyfikowano - waga
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 Wersja Lo-Fi Aktualny czas: 2.07.2025 - 01:57