Avatar billede madszeneli Nybegynder
02. august 2008 - 18:14 Der er 12 kommentarer og
1 løsning

Antal poster i en mySQL-database

Hej med jer,

Jeg vil gerne have printet et tal ud på hvor mange poster der er en i en bestemt database. Er lidt i tvivl om hvordan jeg skal gøre det - Kan i hjælpe? Det tror jeg nok i kan :)
Avatar billede wanze Nybegynder
02. august 2008 - 18:20 #1
Jeg går ud fra at du mener i en tabel, og i såfald:
"select count(*) from TABEL".
Avatar billede jakobdo Ekspert
02. august 2008 - 18:24 #2
Snakker vi på baggrund af en sql ?
Hvis ja, så kan du lave:

echo mysql_result(mysql_query("SELECT COUNT(id) FROM tabel_navn"),0);
Avatar billede madszeneli Nybegynder
02. august 2008 - 18:29 #3
#Wanze - Ja, tabel sorry :)

#jakobdo - Jamen, der viser den vel bare hvad sidste registrerede ID-nummer er? Det er en elektronisk gæsteliste jeg har lavet, så nogle bliver afvist eller slettet, andre bliver godkendt. Så hvis den viser sidste ID-nummer, så er det jo et forkert tal :s
Avatar billede madszeneli Nybegynder
02. august 2008 - 18:32 #4
Tallet siger 39, men kun 38 er godkendte - det er 1 afvist foreløbig.
Avatar billede madszeneli Nybegynder
02. august 2008 - 18:34 #5
Nogle gange bliver man presset til at tænke selv, det er såmænd en dejlig følelse. Glemte alt om at sætte en "WHERE" på, for at sortere afviste fra :D

Men tak.
Avatar billede jakobdo Ekspert
02. august 2008 - 18:34 #6
echo mysql_result(mysql_query("SELECT COUNT(id) FROM tabel_navn WHERE godkendte = 1"),0);

Om feltet hedder godkendte og værdien er 1 ved godkendt ved jeg ikke.
Men ret sql.
Avatar billede jakobdo Ekspert
02. august 2008 - 18:34 #7
:o)
Avatar billede wanze Nybegynder
02. august 2008 - 18:36 #8
Nej, count(id) og count(*) tæller, hvor mange rækker der er i tabellen. Hvis den siger 39, så er der altså 39 poster i alt. Hvad er det du taler om med godkendte og afviste? Hvis de ligger i tabellen, så bliver de talt med.
Avatar billede jakobdo Ekspert
02. august 2008 - 19:24 #9
count(id) er bedre at bruge end count(*)
Avatar billede wanze Nybegynder
02. august 2008 - 20:19 #10
Det afhænger godt nok af, om han har et felt, der hedder id i tabellen, hvilket han ikke har fortalt. :-D

Men ja, det har man jo typisk, og ja, så er det nok hurtigere kun at tælle id'erne. :)
Avatar billede olebole Juniormester
02. august 2008 - 20:51 #11
<ole>

- har man ikke et id-felt, har man måske et felt, der hedder 'brugers_svogers_onklers_gennemsnitlige_lillefingernegls_laengde' ... og så bruger man bare det i stedet  ;o)

/mvh
</bole>
Avatar billede wanze Nybegynder
02. august 2008 - 21:25 #12
Det er jo så bare ikke så heldigt, hvis den ikke er definere (er null), så vil den jo ikke blive talt med. :) Derfor skal man jo være sikker på, at værdien eksisterer, eller bruge count(*), men hvis man har et indeksfelt, så bør man selvfølgelig tælle på den, da man er sikker på, at den eksisterer.

Du kan se her:

mysql> select * from test;
+------+------+
| a    | b    |
+------+------+
| a    | b    |
| c    | d    |
| e    | f    |
| NULL | g    |
+------+------+

mysql> select count(a),count(*) from test;
+----------+----------+
| count(a) | count(*) |
+----------+----------+
|        3 |        4 |
+----------+----------+
Avatar billede jakobdo Ekspert
02. august 2008 - 21:56 #13
Jeg tror du har fat i noget Olebole! :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester