Tellen in sql
Ik heb een tabel waarin in een kolom id's staan. Nu wil ik tellen hoe vaak een bepaald id voorkomt. Hoe doe ik dit? met count?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$sql = "SELECT COUNT(id) AS totaal FROM tabelnaam";
$res = mysql_query($sql);
$totaal = mysql_fetch_array($res);
echo $totaal[0];
?>
$sql = "SELECT COUNT(id) AS totaal FROM tabelnaam";
$res = mysql_query($sql);
$totaal = mysql_fetch_array($res);
echo $totaal[0];
?>
tenzij je het natuurlijk anders doet;)
kolom records:
1
2
3
3
3
4
4
5
5
Dan zou ik dit doen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$sql = "SELECT COUNT(id) FROM tabelnaam WHERE id = 4";
$res = mysql_query($sql);
list($totaal) = mysql_fetch_row($res);
echo $totaal;
?>
$sql = "SELECT COUNT(id) FROM tabelnaam WHERE id = 4";
$res = mysql_query($sql);
list($totaal) = mysql_fetch_row($res);
echo $totaal;
?>
$totaal zou dus 2 moeten zijn. Zorg er ook voor dat je op de kolom een index hebt gezet.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
nee het geen rijtje met id's natuurlijk komt het dan 1x voor. Ik registreer welke id iets aanvraagt en nu wil ik tellen hoevaak elke id iets aanvraagt. bedankt de rest ga het zo proberen
2
3
3
3
4
5
6
6
6
6
Volgens mij bedoeld Sander het volgende:
En als er dan wil ie bijvoorbeeld tellen hoevaak id '3' voor komt in de database, in dit geval 3x, ik heb alleen geen idee hoe je dit moet maken, MySQL komt nog ;-)
sander:
nee het geen rijtje met id's natuurlijk komt het dan 1x voor. Ik registreer welke id iets aanvraagt en nu wil ik tellen hoevaak elke id iets aanvraagt. bedankt de rest ga het zo proberen
Dat is niet zo natuurlijk hoor. Er komen erg veel 1 op meer relaties voor in een database. Denk maar eens aan 1 gebruiker kan meerdere orders plaatsen of 1 gebruikersgroep meerdere gebruikers.
PHP Newbie:
1 berichten boven jou bericht staat een mogelijke oplossing :D
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
SELECT COUNT(aanvragen) FROM aanvragen GROUP BY aanvrager
post even de error..
gewoon allemaal 0 0 0 0 0 0
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$query="SELECT
COUNT(id) AS aantal,
id
FROM
tabelnaam
GROUP BY
id
ORDER BY
aantal DESC";
$sql=mysql_query($query);
while($data=mysql_fetch_array($sql)){
echo 'ID nummer '.$data['id'].' heeft '.$data['aantal'].' aanvragen gedaan<br>';
}
?>
$query="SELECT
COUNT(id) AS aantal,
id
FROM
tabelnaam
GROUP BY
id
ORDER BY
aantal DESC";
$sql=mysql_query($query);
while($data=mysql_fetch_array($sql)){
echo 'ID nummer '.$data['id'].' heeft '.$data['aantal'].' aanvragen gedaan<br>';
}
?>
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ....
waarscheinlijk komt dat omdat ik dat AS .... niet snap
zie ff mijn vorige post, en het ligt denk ik niet aan die AS, tenminste niet als je het goed hebt overgenomen. De betekenis van je melding is dat er geen resultaten zijn gevonden die aan je query voldoen.
Misschien dat er in $row[ID] iets staat wat dus totaal niet voorkomt in de kolom id.
maar waar slaat dat aantal dan op?
SELECT id FROM tabel WHERE voorwaarde
En bij het ophalen doe je dan $data['id']
Met de AS kan je hetzelfde:
SELECT COUNT(id) AS aantal FROM tabel WHERE voorwaarde
Dan kan je bij het ophalen:
$data['aantal']
Als je het van het engels vertaald, naar het Nederlands:
SELECTEER TEL(id) ALS aantal VAN tabel WAAR voorwaarde
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Ik leg even uit hou het in elkaar zit dan kunnen jullie mischien beter vertellen waar wat nu moet.
Ik heb dus de tabel tbl_offerte waarin in de kolom ontvanger heb. In die kolom staan dus de id nummers. het nummer dat ik wil tellen is $row[ID]. Ik hoop dat jullie me nu duidelijker kunnen laten zien wat nu wat is.
Wat is het foutje.. ben al blij dat je een goede error afhandeling heeft...
er zit een fout in mijn sql statement.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$query="SELECT
COUNT(ontvanger) AS id,
FROM
tbl_offerte
GROUP BY
ontvanger
ORDER BY
aantal DESC";
$sql2=mysql_query($query);
while($data=mysql_fetch_array($sql2)){
echo 'ID nummer '.$data['id'].' heeft '.$data['aantal'].' aanvragen gedaan<br>';
}
COUNT(ontvanger) AS id,
FROM
tbl_offerte
GROUP BY
ontvanger
ORDER BY
aantal DESC";
$sql2=mysql_query($query);
while($data=mysql_fetch_array($sql2)){
echo 'ID nummer '.$data['id'].' heeft '.$data['aantal'].' aanvragen gedaan<br>';
}
Gewijzigd op 01/01/1970 01:00:00 door sander