Tellen in sql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Sander

sander

25/06/2006 15:19:00
Quote Anchor link
Even een simpel vraagje.
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?
 
PHP hulp

PHP hulp

17/11/2024 08:56:49
 
Erik Rijk

Erik Rijk

25/06/2006 15:21:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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];
?>
 
Frank -

Frank -

25/06/2006 15:27:00
Quote Anchor link
Een bepaald id? Dan moet je ook een GROUP BY opgeven.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
  COUNT(id) AS aantal,
  id
FROM
  tabelnaam
GROUP BY
  id
ORDER BY
  aantal DESC
 
Terence Hersbach

Terence Hersbach

25/06/2006 15:30:00
Quote Anchor link
dezelfde id's tellen? dan ben je niet goed bezig denk ik.. id = identiek = dat een getal maar 1 x voor komt..

tenzij je het natuurlijk anders doet;)
 
Martijn B

Martijn B

25/06/2006 15:30:00
Quote Anchor link
Ik neem aan dat sander bedoeld:

kolom records:
1
2
3
3
3
4
4
5
5


Dan zou ik dit doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


$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
 
Sander

sander

25/06/2006 15:31:00
Quote Anchor link
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
 
PHP Newbie

PHP Newbie

25/06/2006 15:32:00
Quote Anchor link
1
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 ;-)
 
Martijn B

Martijn B

25/06/2006 15:35:00
Quote Anchor link
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
 
Robert Deiman

Robert Deiman

25/06/2006 16:13:00
Quote Anchor link
kan het niet met de group by functie:

SELECT COUNT(aanvragen) FROM aanvragen GROUP BY aanvrager
 
Sander

sander

25/06/2006 16:16:00
Quote Anchor link
deze werkt niet even wat combineren met de andere antwoorden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql2 = "SELECT COUNT(ontvanger) FROM tbl_offerte WHERE id = ".$row[ID]."";
$res2 = mysql_query($sql2);
list($aantal) = mysql_fetch_row($res2);
 
Eris -

Eris -

25/06/2006 16:18:00
Quote Anchor link
post even de error..
 
Sander

sander

25/06/2006 16:19:00
Quote Anchor link
gewoon allemaal 0 0 0 0 0 0
 
Robert Deiman

Robert Deiman

25/06/2006 16:20:00
Quote Anchor link
Frank gaf eigenlijk al het antwoord volgens mij hoor, ik heb het even getest ook, en als je met die GROUP BY werkt, krijg ik er keurig het gewenste resultaat uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
}

?>
 
Sander

sander

25/06/2006 16:20:00
Quote Anchor link
en bij die andere krijg ik de error

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ....

waarscheinlijk komt dat omdat ik dat AS .... niet snap
 
Robert Deiman

Robert Deiman

25/06/2006 16:22:00
Quote Anchor link
@Sander

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.
 
Martijn B

Martijn B

25/06/2006 16:23:00
Quote Anchor link
Wat staat er allemaal in de kolom id?

Misschien dat er in $row[ID] iets staat wat dus totaal niet voorkomt in de kolom id.
 
Sander

sander

25/06/2006 16:32:00
Quote Anchor link
maar waar slaat dat aantal dan op?
 
Robert Deiman

Robert Deiman

25/06/2006 16:35:00
Quote Anchor link
Met AS geef je een alias mee aan je selectie, normaal doe je:

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
 
Sander

sander

25/06/2006 16:42:00
Quote Anchor link
Ok ik heb het geprobeert maar heb een fout in mijn sql.
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.
 
Eris -

Eris -

25/06/2006 16:46:00
Quote Anchor link
Wat is het foutje.. ben al blij dat je een goede error afhandeling heeft...
 
Sander

sander

25/06/2006 16:47:00
Quote Anchor link
gewoonWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
er zit een fout in mijn sql statement.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
}
Gewijzigd op 01/01/1970 01:00:00 door sander
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.