Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:06 Der er 16 kommentarer og
1 løsning

Tælle antal rækker i MySQL?

Hey,

Hvilken forespørgsel skal man lave for, at tælle antal rækker i en MySQL-database?
Avatar billede phpwiz Nybegynder
20. januar 2004 - 20:07 #1
SELECT COUNT(id) FROM table;
Avatar billede htm Nybegynder
20. januar 2004 - 20:08 #2
$sql = "SELECT * FROM tabel";
$result = mysql_query($sql) or die(mysql_error());
$antal = mysql_num_rows($result);

eller

$sql = "SELECT count(*) AS antal FROM tabel";
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:09 #3
htm>> skal navnet på den række jeg gerne vil tælle så stå inde i parantesen på Count ?
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:10 #4
Og hvad nu hvis jeg gerne vil tælle rækken kategori, hvor værdien er 1?
Avatar billede htm Nybegynder
20. januar 2004 - 20:11 #5
Tælle antal rækker, og den række du vil tælle hænger ikke sammen.

Hvis det er 1 række du vil tælle giver det ingen mening at tælle antallet af rækker.

Men ved brug af count() er det ligemeget hvad der står, der kan stå id eller * eller feltnavn
Avatar billede htm Nybegynder
20. januar 2004 - 20:12 #6
SELECT COUNT(*) FROM tabel WHERE kategori=1;
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:13 #7
count(kategori = '1')

Kan det lade sig gøre ?
Avatar billede htm Nybegynder
20. januar 2004 - 20:13 #8
eller som første eksmepel, er det bare

SELECT * FROM tabel WHERE kategori=1

og så kan du samtidig med at du hiver resultatet ud, hive antallet ud med php.

Funktionen i php er lavet til det samme  :-)
Avatar billede htm Nybegynder
20. januar 2004 - 20:14 #9
nej det skal være som en del af where.

det der står inden i count er feltnavnet, * for alle felter.

du skriver som skrevet

SELECT count(*) FROM tabel WHERE kategori='1'

I where smider du alle dine betingelser
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:15 #10
skal jeg så skrive: echo $antal; ???
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:16 #11
altså for at få resultatet ud ?
Avatar billede htm Nybegynder
20. januar 2004 - 20:17 #12
$sql = "SELECT count(*) AS antal FROM tabel WHERE kategori='1'";
$result = mysql_query($sql);
$row = mysql_fetch_array($sql);
echo $row['antal'];
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:18 #13
okay.. prøver
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:21 #14
virker sq ikke...

Jeg har skrevet således:

<?

                        $foresp = mysql_query("SELECT id, DATE_FORMAT(date, '%d/%m-%Y') AS dato, overskrift FROM xhwforum WHERE kategori = '$k' ORDER BY date DESC LIMIT 0, 1");

                        while($data = mysql_fetch_array($foresp)){
                       
                            $sql = "SELECT count(*) AS antal FROM xhwforumsvar WHERE forumid='2'";
                            $result = mysql_query($sql);
                            $row = mysql_fetch_array($sql);

                        ?>
Avatar billede htm Nybegynder
20. januar 2004 - 20:22 #15
den sidste line skal være anderledes

$row = mysql_fetch_array($result);

Beklager :-)
Avatar billede sigmadk Nybegynder
20. januar 2004 - 20:24 #16
Tak, nu virkede det! Kan du ikke oprette et svar, så du kan få dine point..
Avatar billede htm Nybegynder
20. januar 2004 - 20:25 #17
Dette er næsten nemmere at bruge:

<?php
$foresp = mysql_query("SELECT id, DATE_FORMAT(date, '%d/%m-%Y') AS dato, overskrift FROM xhwforum WHERE kategori = '$k' ORDER BY date DESC LIMIT 0, 1") or die(mysql_error());
$antal = mysql_num_rows($foresp);
while($data = mysql_fetch_array($foresp))
    {
?>
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