Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Zliczanie rekordów] zawartych w bazie
pawel007
post 10.10.2003, 00:44:26
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.10.2003
Skąd: Kraków

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


Pytanie - pewnie trywialne, ale nie mogę odpowiedzi znaleźć na forum!

Mianowicie, potrzebuję wyciągnąć z bazy danych (konkretnie z kilku tabel) ilość wszystkich rekordów! Jak to zrobić? Prosżę o pomoc?


--------------------
Początki zawsze sa trudne...
Go to the top of the page
+Quote Post
adwol
post 10.10.2003, 00:53:34
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Mianowicie, potrzebuję wyciągnąć z bazy danych (konkretnie z kilku tabel) ilość wszystkich rekordów! Jak to zrobić? Prosżę o pomoc?

Po pierwsze to nie to forum. Problemy bazodanowe proszę umieszczać na forum Bazy danych. Przenoszę wątek.

Co do meritum:
[sql:1:6273c73fb4]select count(*) from ...[/sql:1:6273c73fb4]
W miejsce ... wstaw sobie odpowiednie tabele.
Go to the top of the page
+Quote Post
POLVIP
post 1.11.2003, 20:44:39
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Long Island, NY USA

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


Nie wiem czy adwol zrozumial dobrze pytanie czy moze ja sie myle ale odpowied jest

[php:1:1a343df2e1]<?php
/* polacz sie do db */
mysql_connect ('localhost','user','pass');
mysql_select_db ('test');

/* zbuduj i wyslij query */
$query = "SELECT * FROM sometable ORDER BY $order";
$result = mysql_query ($query);

/* sprawdz czy cos wrocilo */
$numrows = mysql_num_rows($result);
if ($numrows == 0) {
echo "Nie ma danych w bazie!";
exit;
}
?>[/php:1:1a343df2e1]

numer ile elementow jest w db jest w $numrows

to mozesz powtorzyc na kazda tabele ktora cie interesuje


--------------------
Mariuz @ POLVIP ;)
Znajdziesz mnie tutaj...
Zobacz: http://www.polvip.net
Go to the top of the page
+Quote Post
scanner
post 1.11.2003, 21:03:11
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




POLVIP: masz warning za nabijhanie postów.
Nie wiesz o czym piszesz, nie znasz poleceń MySQL.
Po chere wybierac wszystko z bazy (miliony moze rekordow) skoro MySQL potrafi policzyc to sam?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
POLVIP
post 1.11.2003, 21:46:05
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Long Island, NY USA

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


sadzisz ze to jest gorsza odpowiedz od adwol?

nabijanie postow?

moze wykasujesz mi do 0 - nie o to mi chodzi....


--------------------
Mariuz @ POLVIP ;)
Znajdziesz mnie tutaj...
Zobacz: http://www.polvip.net
Go to the top of the page
+Quote Post
adwol
post 1.11.2003, 22:00:35
Post #6





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
sadzisz ze to jest gorsza odpowiedz od adwol?

Myślę, że tak, ponieważ:
:arrow: musisz wyciągnąć te wszystkie wiersze, żeby je policzyć, a pobranie count(*) nie dotyka nawet danych w tabeli
:arrow: nie wiadomo po co te dane sortujesz (pomijając to, że nie wiadomo po czym)
Powoduje to, że Twoja metoda jest bardziej czasochłona i daje niepotrzebną pracę DBMSowi.
Poza tym, autor wątku nigdzie nie zaznaczył, że chodzi mu o MySQLa więc Twoje rozwiązanie może okazać się zupełnie błędne.
Go to the top of the page
+Quote Post
Jabol
post 1.11.2003, 22:01:34
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Cytat
sadzisz ze to jest gorsza odpowiedz od adwol?

nabijanie postow?

moze wykasujesz mi do 0 - nie o to mi chodzi....
po prostu zostałeś powiadomiony, że jest lepszy sposób, to nie miało żadnych podtekstów - nie najeżdżaj na nas.
a count() jest naprawdę lepsze
Go to the top of the page
+Quote Post
GeoS
post 2.11.2003, 00:32:51
Post #8





Grupa: Zarejestrowani
Postów: 602
Pomógł: 0
Dołączył: --
Skąd: W - WA -> GRO

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


[sql:1:4d633636f1]SELECT count(tabela1.id) as tabela_1, count(tabela2.id) as tabela_2, ...
FROM tabela1, tabela2;[/sql:1:4d633636f1]


--------------------
Zanim zadasz pytanie, zawsze wczesniej zajrzyj do manuala ( pl.php.net/manual/pl/ ).
Szukasz skryptow - www.hotscripts.com
Go to the top of the page
+Quote Post
adwol
post 2.11.2003, 01:06:27
Post #9





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
[sql:1:f6fabd4176]SELECT count(tabela1.id) as tabela_1, count(tabela2.id) as tabela_2, ...
FROM tabela1, tabela2;[/sql:1:f6fabd4176]

Chyba nie o to chodziło, bo każdy z tych count(...) zwróci Ci iloczyn ilości wierszy w obu tabelach (złączenie kartezjańskie).
Go to the top of the page
+Quote Post
Barszczu
post 27.12.2003, 15:21:00
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.10.2003

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


hmm
Po połączeniu się w php z bazą zadałem:
[php:1:4df3c42184]
$query = "SELECT count(*) FROM lista";
$ile = mysql_query("$query");
echo("Mamy ".$ile." fanów");
[/php:1:4df3c42184]

Wg. mnie wszystko jest dobrze, lecz zamiast echa
Kod
Mamy 2 fanów
- bo tyle jest w bazie, otrzymuję:
Kod
Mamy Resource id #5 fanów


Co może byc nie tak?

[edit] Dodam tylko, że [sql:1:4df3c42184]SELECT count( * )
FROM lista [/sql:1:4df3c42184] wykonane w phpmyadminie zwraca wartość 2.... [/edit]pozdro
Go to the top of the page
+Quote Post
BzikOS
post 27.12.2003, 15:26:07
Post #11





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


[php:1:fadd480be0]<?php
list( $ile ) = @mysql_fetch_row( @mysql_query( 'SELECT count(*) FROM lista' ) );
echo( 'Mamy ' . $ile . ' fanów' );
?>[/php:1:fadd480be0]

I będzie cacy winksmiley.jpg
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: 19.07.2025 - 09:55