Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]maly problem z wyswietlaniem z bazy danych
Forum PHP.pl > Forum > Przedszkole
MaciekDZN
witam, oto moj problem:
  1. <?php
  2. ################################################################################
  3. ##############################
  4. include('config.php'); //polaczenie z baza danych//
  5. $wynik100 = mysql_query(&#092;"SELECT * FROM mp3 WHERE kto=all()\");
  6. $l_1 = ': ';
  7. $l_2 = '
  8. ';
  9. while($linia=mysql_fetch_array($wynik100) AND $rekordy=mysql_num_rows($wynik100))
  10. {
  11. echo ($linia[&#092;"kto\"].$l_1.$rekordy[\"kto\"].$l_2);
  12. }
  13. ################################################################################
  14. ##############################
  15. ?>


chce wyswietlic to w tym stylu:

Maciek: 40
Piotrek: 25
itd...

w bazie:
kto = nick

Tak wyglada to dla jednego nicku o nazwie Maciek:

  1. <?php
  2. include('config.php');
  3. echo 'Maciek: ';
  4. $sqlu_m = mysql_query(&#092;"SELECT id, kto FROM mp3 WHERE kto='Maciek'\");
  5. ?>


ale ja chce zeby to było w pętli i zebym nie musial po pojawieniu sie nowego nicku w bazie dodawac go ręcznie... Jak to zrobic zeby ta pętla zadziala ?
webdice
  1. <?php
  2. $wynik100 = mysql_query("SELECT * FROM mp3");
  3. ?>


EDIT: Nie ma czegoś takiego jak all(), gdzie Ty to wyczytałeś?
MaciekDZN
no fajnie... ja, tak jak Ty mi pokazales, juz probowalem...

te all() widzialem chyba tutaj na tym forum.php.pl ...

ja chce zrobic takie statystyki ale jak na razie nie pomogles mi.

chce to tak zrobic zeby wyczytało z bazy nick i wyszukalo ile jest rekordów z jego nazwą... mniej wiecej costakiego
webdice
mysql_num_rows" title="Zobacz w manualu PHP" target="_manual pokazuje Ci ilość rekordów które pobrałeś z bazy. Pokaż jak wygląda tabela i podaj przykładowe rekordy.
nospor
No ale tu trzeba uzyc group by
  1. SELECT kto, count(kto) AS ilosc FROM mp3 GROUP BY kto


I popraw tytul o znacznik zgodnie z zasadami forum przedszkole
MaciekDZN
Tak wyglada u mnie tabela.

Kod
-- Struktura tabeli dla  `mp3`
--

CREATE TABLE `mp3` (
  `id` int(11) NOT NULL auto_increment,
  `nazwa` text NOT NULL,
  `adreswww` text NOT NULL,
  `rozmiar` varchar(7) default NULL,
  `kto` varchar(24) default NULL,
  `kategoria` text NOT NULL,
  `punkty_suma` int(11) default '2',
  `punkty_ilosc` int(11) default '1',
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `kategoria` (`kategoria`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=89;

--
-- Zrzut danych tabeli `mp3`
--

INSERT INTO `mp3` (`id`, `nazwa`, `adreswww`, `rozmiar`, `kto`, `kategoria`, `punkty_suma`, `punkty_ilosc`) VALUES
(1, 'Max Farenthide - Slice me nice', 'http://top20001.wrzuta.pl/aud/file/k5SwBl3GOA/max_farenthide_-_slice_me_nice_.mp3', '3,42 MB', 'MaciekDZN', 'Techno', 30, 10),
(2, 'Basshunter - Professional Party People', 'http://blonnnndiiiina.wrzuta.pl/aud/file/jEDyTtCS90/basshunter_-_professional_party_people_.mp3', '2,88 MB', 'Kuba', 'Techno', 2, 1),
(3, 'Def Leppard - Pour Some Sugar On Me', 'http://darkman7.wrzuta.pl/aud/file/yxKyAuORXP/def_leppard_-_pour_some_sugar_on_me_.mp3', '4,05 MB', 'MaciekDZN', 'Rock', 2, 1),;


chce zeby wyswietlało tak:

MaciekDZN: 2
Kuba: 1

i nie chc tego robic tak:
  1. <?php
  2. include('config.php');
  3. echo 'Maciek: ';
  4. $sqlu_m = mysql_query(&#092;"SELECT id, kto FROM mp3 WHERE kto='Maciek'\");
  5. ?>

tylko chce to zrobic w pętli bo rekordow jest duzo i nie chce dodawac co chwilke kogos nowego do pliku
webdice
Sprawdzałeś zapytanie ~nospora - jest dobre. Ewentualnie możesz sobie dodać sortowanie:

  1. SELECT kto, count(kto) AS ilosc FROM mp3 GROUP BY kto ORDER BY `ilosc` DESC


DESC - malejąco
ASC - rosnąco
MaciekDZN
mam cos takiego:
  1. <?php
  2. ################################################################################
  3. ##############################
  4. $wynik1 = mysql_query("SELECT kto, COUNT(*) AS ilosc FROM mp3 GROUP BY kto ORDER BY COUNT(*) AND id DESC");
  5. $wynik2 = mysql_query("SELECT kto, COUNT(*) AS ilosc FROM mp3 GROUP BY kto ORDER BY COUNT(*) AND id DESC");
  6. $l_1 = ': ';
  7. $l_2 = '<br>';
  8. while($linia=mysql_fetch_array($wynik1) AND $linia2=mysql_num_rows($wynik2))
  9. {
  10. echo ($linia["kto"].$l_1.$linia2["kto"].$l_2);
  11. }
  12. ################################################################################
  13. ##############################
  14. ?>


i wyswietla sie to tak:

co zrobilem zle ?
webdice
  1. <?php
  2. $wynik2 = mysql_query("select kto, count(kto) as ilosc from mp3 group by kto ORDER BY `ilosc` DESC ");
  3. $l_1 = ': ';
  4. $l_2 = '<br>';
  5. while($linia=mysql_fetch_array($wynik1))
  6. {
  7. echo ($linia["kto"].$l_1.$linia["ilosc"].$l_2);
  8. }
  9. ?>
MaciekDZN
WIELKIE DZIEKI smile.gif) działa smile.gif
  1. <?php
  2. $wynik1 = mysql_query("select kto, count(kto) as ilosc from mp3 group by kto ORDER BY `ilosc` DESC ");
  3. $l_1 = ': ';
  4. $l_2 = '<br>';
  5. while($linia=mysql_fetch_array($wynik1))
  6. {
  7. echo ($linia["kto"].$l_1.$linia["ilosc"].$l_2);
  8. }
  9. ?>
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.