![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam w bazie tabele z artykułami, chciałbym wyświetlić na stronie listę użytkowników i ilość dodanych artykułów.
Tabela nazywa się artykuły w niej mam rekord dodał i w nim zapisany przy każdym artykule nick osoby która go dodała, obok nicku w kolumnie Rekordów jest ilość dodanych artykułów. Próbowałem : Kod $zapytanie = "SELECT COUNT( * ) AS `Rekordów` , `dodal` FROM `artukuły` ORDER BY `dodal`"; $wykonaj = mysql_query($zapytanie) or Die("Nie działa zapytanie". $zapytanie); $ile_rek = mysql_num_rows($wykonaj); ale nic mi nie wyświetla. Ten post edytował indexx 22.02.2009, 15:09:08 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
pokaż strukturę tabel bo tak jak wytłumaczyłeś nic nie można zrozumieć. wydaje mi się że będzie Ci potrzebne DISTINCT. ale pierw pokaż co i jak i wytłumacz poprawnie.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Struktura tabeli artykuly
Kod CREATE TABLE `komentarze` (
`tytul` text NOT NULL, `opis` text NOT NULL, `img` text NOT NULL, `link` text NOT NULL, `dodal` text NOT NULL, `data` text NOT NULL, `cat` text NOT NULL, `id` int(11) NOT NULL auto_increment, `ile` int(11) NOT NULL default '0', `glosy` int(11) NOT NULL default '0', `ocena` float NOT NULL default '0', `view` int(11) NOT NULL default '0', `active` int(11) NOT NULL default '0', `tags` text NOT NULL, `rss_data` text NOT NULL, `dodalid` int(11) NOT NULL default '0', `typ` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); Ten post edytował indexx 22.02.2009, 15:22:42 |
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
tu mówisz o artykułach a podajesz komentarze? i dalej nie wiem co chcesz zrobić? pobrać nazwy użytkowników którzy dodali artykuł i wyświetlić ile tych artykułów dodali?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Już poprawiłem, pomyliłem się bo pierwotnie tabela nazywała się articles ale zmieniłem na artykuły, a tutaj wpisałem komentarze
![]() Tak, chcę na dodatkowej stronie wyświetlić listę użytkowników i obok ilość dodanych przez każdego z nich artykułów. Ten post edytował indexx 22.02.2009, 15:32:03 |
|
|
![]()
Post
#6
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
zrobiłem coś takiego z palca pisane popraw ewentualne błędy:
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Działa świetnie!
Ogromne dzięki! Mam jeszcze jedno pytanie, w tabeli artykuły mam mam wiersz glosy która wygląda tak Rekordów glosy 123............... 0 30................. 2 49................. 6 Jak zliczyć sumę oddanych głosów na wszystkie artykuły, bo już nie mam pomysłu, próbowałem tak: Kod $res = mysql_query("SELECT movie count(*) FROM glosy"); $ile = mysql_num_rows($res); ale nie działa Ten post edytował indexx 22.02.2009, 17:51:41 |
|
|
![]()
Post
#8
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
Rekordów glosy 123............... 0 30................. 2 49................. 6 nie bardzo rozumiem wytłumacz jak to działa... Jak zliczyć sumę oddanych głosów na wszystkie artykuły ten problem wynika z tego że musisz wyjaśnić. -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chyba coś takiego bedzie
Ten post edytował kefirek 22.02.2009, 19:57:22 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem wytłumacz jak to działa... W kolumnie 'Rekordów' mam ilość ocenionych materiałów, a w kolumnie głosy ocenę z zakresu 1-6, czyli np na ocenę 6 jest ocenionych 49 materiałów. Rozwiązanie kefirka dodaje mi zawartość pól ocen, czyli np jeśli 5 artykułów jest ocenionych na 3 to wynik będzie 15, a powinien być 5. Chyba już dobrze wytłumaczyłem. |
|
|
![]()
Post
#11
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
robisz analogicznie. czytasz oceny DISTINCT i później klauzurą WHERE liczysz rekordy.
teraz dostaniesz pseudo kod:
Ten post edytował piotrooo89 22.02.2009, 20:21:38 -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Coś nie chce mi to wyjść, zrobiłem tak:
Kod <?php $sql1 = mysql_query("SELECT DISTINCT(glosy) FROM movie"); while ($row = mysql_fetch_array($sql1)) { $sql2 = mysql_query("SELECT COUNT(*) FROM movie WHERE glosy=$row[glosy]"); while($row2 = mysql_fetch_array($sql2)) { echo ''.$row.' , '.$row2.''; } } ?> Może mi ktoś powiedzieć jak to ma wyglądać? |
|
|
![]()
Post
#13
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
daj sobie tu mysql_error i już będziesz wiedział:
i popatrz sobie dokładnie na mojego gotowca. jak dalej nie wiesz o co chodzi popatrz jeszcze raz. sprawa jest analogiczna zmieniają się tylko nazwy kolumn tabel. Ten post edytował piotrooo89 26.02.2009, 13:41:30 -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Już zrobiłem, wielkie dzięki za pomoc!
Mam jeszcze jedno pytanie, jak uszeregować wynik w kolejności malejącej, próbowałem za pomocą order by ale nie skutkuje? |
|
|
![]()
Post
#15
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
ORDER BY rekord ASC lub DESC.
Ten post edytował piotrooo89 4.03.2009, 19:00:39 -------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, tak jak pisałem zwraca błąd:
Kod [b]Warning[/b]: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
|
|
|
![]()
Post
#17
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
po co pokazujesz sam błąd. pokaż zapytanie.
-------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod $aut = mysql_query('SELECT DISTINCT(dodal) AS name FROM `artykuly` order by rekord asc LIMIT 10');
while ($row1 = mysql_fetch_array($aut)) { $kto = $row1['name']; $ilosc = mysql_query("SELECT COUNT(*) AS ile FROM artykuly WHERE dodal='$kto'"); while ($row2 = mysql_fetch_array($ilosc)) { echo '<div>Login: '.$kto.' dodanych materiałów: '.$row2['ile'].'</div>'; } } |
|
|
![]()
Post
#19
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
to był tylko przykład!
tam gdzie masz rekord wstaw soja kolumnę po której chcesz żeby było sortowane. i jak chcesz malejąco to nie ASC tylko DESC. ORDER BY -------------------- |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa, jak mówiłem, wiem co oznacza asc i desc, wpisałem tylko w kwestii sprawdzenia.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:46 |