![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym, wyświetlając listę tytułów dokumentów, wyświetlić pod każdym tytułem przypisane do niego słowa kluczowe np.: 1. Tytuł 1 tagi: słowo 1, słowo 2, słowo 3 ----------------------------- 2. Tytuł 2 tagi: słowo 2, słowo 4, słowo 5 itd. Wymyśliłem coś takiego, ale niestety słowa kluczowe dublują w przyroście kwadratowym (co jest w sumie naturalne przy zastosowaniu dwóch pętli while). Nie wiem, jakiego rozwiązanie użyć. Liczę bardzo na pomoc. Z góry dziękuję. A oto kod: CODE if (mysql_connect($mysql_host, $mysql_login, $mysql_haslo) and mysql_select_db($mysql_baza)) {
$wynikzajawki = mysql_query("SELECT * FROM $mysql_tabela WHERE nr=$dzial"); if (!$wynikzajawki) echo "Błąd w zapytaniu SQL: ".mysql_error(); } if ($wynikzajawki) { //LISTA TYTUŁÓW while($danezajawki = mysql_fetch_assoc($wynikzajawki)) { $zajdocid=$danezajawki["id"]; $zajdoctytul=$danezajawki["tytul"]; $wynikzajtagi = mysql_query("SELECT t.id, t.tag FROM $mysql_tabelapor AS at JOIN $mysql_tabelatag AS t ON (at.id_tag=t.id) WHERE (at.id_art=$zajdocid )"); //LISTA TAGÓW while($danezajtagi = mysql_fetch_assoc($wynikzajtagi)) { $idtagow=$danezajtagi["id"]; $jakietagi=$danezajtagi["tag"]; if (++$i>0) $przecinek=", "; else $przecinek=""; $tagg.=''.$jakietagi.''.$przecinek; $zajtagi=rtrim($tagg, ', '); } echo ' '.$zajdoctytul.''.$zajtagi.''; } } mysql_close(); Ten post edytował krzysieklos 10.03.2009, 09:31:25 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
ja bym to tak zrobił:
to taki pseudo kod przerób sobie, i sprawdź działanie. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nic to nie pomogło. Dalej wyświetla mi podwójnie... Dzięki za odzew.
|
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
a pokaż jak to robisz. kod, pokaż kod.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
po co JOIN? Ten post edytował piotrooo89 10.03.2009, 13:54:29 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
JOIN nic nie zmienia. Problem pewnie tkwi w podwójnym 'while'. To chyba sprawia, że słowa kluczowe się dwoją, troją, itd.
Przejrzałem już cały net i dwie książki. Nie wiem jak to rozwiązać. |
|
|
![]()
Post
#8
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
i tak spróbuj wypisać:
Ten post edytował piotrooo89 10.03.2009, 14:24:31 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety - teraz pojawił się komunikat błędu:
[b]
Chyba nic z tego... |
|
|
![]()
Post
#10
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
DISTINCT(tag) a tak?
i jeszcze dodaj:
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Something is wrong in your syntax obok 'DISTINCT(tag) AS tagi FROM tabela_tagi_artykuly AS at JOIN tabela_tagi AS t ON (at.id_tag=t.' w linii 1
:-( |
|
|
![]()
Post
#12
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
ja naprawde na Twoim miejscu zrezygnowałbym z tego JOIN'a. możesz to ładnie połączyć tytul.id_tag=tag.id stosujac tylko klauzule WHERE. pozniej mozna juz tylko stosowac aliasy. malo moge pomoc nie znajac struktury tabeli.
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tabele są trzy:
tabela_artykuly: id | tytul | nr <- numer działu, po którym są sortowane listy dokumentów tabela_tagi: id | tagi tabela_tagi_artykuly: id_tag | id_art Zapytanie do bazy robiłem na różne sposoby. Wydaje mi się, że nie powinno być dwóch 'while'. Ale jak to ma wyglądać - nie wiem. W każdym razie dzięki za wsparcie. |
|
|
![]()
Post
#14
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
wiec tak:
do pobrania tutułów:
do poprania tagow:
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem. Cały czas krzyczy, że mysql_fetch_array niemożliwe dla zapytania... Będę jeszcze główkował. Może ktoś ma jeszcze jakiś pomysł?
Ten post edytował krzysieklos 10.03.2009, 19:08:28 |
|
|
![]()
Post
#16
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
bardzo Cię przepraszam... mój błąd...
tak powinno być. -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, dzięki. Pokazałeś mi dobry kierunek. W dwóch zapytaniach do bazy użyłem DISTINCT wskazując interesujące mnie komórki. Działa. Raz jeszcze dziękuję. Najlepszego!
Ten post edytował krzysieklos 11.03.2009, 08:43:45 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:12 |