Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie jak w komentarzach
Forum PHP.pl > Forum > Bazy danych > MySQL
memory
Witam mam taki maly problem


idkom | id | tytul
----------------------
14 | 1 |
15 | 1 |
16 | 1 |
17 | 2
18 |2 |

Udalo mi wykonac zapytanie by zliczalo id i dodawalo tyle ile trzeba idkom przyklad

jezeli wybiore id =1 wyswietli mi sie 14,15,16 sa to uniklane numery (klucz)
Teraz chcę. gdy wybiore id wyswietli mi sie

1 zamist 14 | 1
2 ... | 1
3 .. | 1

i gdy wybiore id = 2 wyswietli mi sie

1 zamist 17 | 2
2 zamist 18 |2

Dokladniej chodzi mi , ze jak wybiore jakis news to komentarze beda sie zaczynaly od 1 >
SongoQ
1. Przeczytalem Twoj post kilka razy i nie rozumiem o co w ogole pytasz. Napisz to w jakims zrozumialym jezyku.

2. Pole o nazwie Id jest zalozenia samego jest to pole PK czyli klucz podstawowy, trzymaj sie tej zasady a nie zmieniaj teorii.
memory
mam tabele news(id, autor,tresc) komentarze (idkom,id,autor,tresc)
Wykonalem zapytanie


  1. mysql_query("SELECT news.id, news.autor, news.tresc, news.tytul,
  2. COUNT(idkom) as idkom
  3. FROM news LEFT JOIN komentarze ON (komentarze.id=news.id)
  4. GROUP BY news.id") OR die("Błąd w zapytaniu!");


Dzieki czemu moglem zliczyc liczbe komentarzy (idkom) np dla newsa o id=1 komentarze(3) lub newsa id=3 komentarze(8)
Lacznie mam (idkom 11 ) czyli razem 11 komentarzy wszystkich w tabeli "komentarze"
Kiedy wchodze np news o id=3 wyswietlaja mi sie sie

news.tytul
news.autor

komentarze:

idkom tresc
-----------------------
4 bleble
5 cos
6 blos
.. ....
11 bles

Chcialbym zeby zamist pokazywac 4,5,6 .. 11 pokazywalo 1,2,3,..8.

zdjecie
zdjecie1

Mama nadzieje ze teraz wyjasni sprawe .Dziekuje
SongoQ
No to teraz jasne. Najlepiej juz numerowac w PHP a do linku bydowac z orginalnym id. Jesli chesz operowac na kolejnosci komentarza (zamias id z bazy w linku pokaz kolejnosc) to pasuje wyciaganie zrobic uzywajac LIMIT troche to glupi pomysl ale zadziala.
memory
dzieki za pomoc, wlasnie teakiej podpowiedzi szukalem smile.gif
SongoQ
Ciesz sie ze moglem pomoc. OK powiedz mi jedo zrobiles tylko numerowanie podczas wyswietlania czy tez numerujesz ktory rekord np edytowac wyswietlic itd.
memory
zrobilem najprosciej chyba jak sie dalo w php ++. Wlasnie o taki efekt mi chodzilo
prond
Można to wszystko zrobić w bazie wystarczy coś ala ROWNUM z ORACLE :

  1. SET @rownum :=0;
  2.  
  3. SELECT
  4. @rownum := @rownum +1 AS rownum,
  5. NewsComment.idkom,
  6. NewsComment.tytul
  7. FROM comments AS NewsComment
  8. WHERE id = 14
  9. ORDER BY idkom ASC;
SongoQ
@prond Mozesz powiedziec czy wydajnosc maleje po zastosowaniu czegos takiego. Co mowi np EXPLAIN. Widze ze wiedza ORACLE'owa tak wiele osob narzeka na ta baze a numerowanie tam jest czyms podstawowy.
prond
Szczerze mówiąc nie analizowałem tego patentu w kontekście wydajności.

Jednak nie wydaje mi się, aby to mogło spowolnić zapytanie bardziej niż np. jakiś CAST czy CASE.
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.