Ik heb een php tabel met een bepaald veld, genaamd "id_profile" Ik wil graag weten welk nummer het vaakst in dit php-veld voorkomt. Wat voor SQL/PHP-commando kan ik hiervoor gebruiken?
- PHP tel vraag
-
01-12-2011, 17:42 #1
- Berichten
- 542
- Lid sinds
- 17 Jaar
PHP tel vraag
Laatst aangepast door Gerben H. : 01-12-2011 om 18:36 Reden: kolom veranderd in veld
-
-
01-12-2011, 18:29 #2
- Berichten
- 49
- Lid sinds
- 13 Jaar
Re: PHP tel vraag
Wat bedoel je precies met een php tabel?
Groetjes,
Jasper
-
01-12-2011, 18:35 #3
- Berichten
- 542
- Lid sinds
- 17 Jaar
Re: PHP tel vraag
Hi Jasper,
Dank voor je reactie.
Met een PHP tabel bedoel ik een tabel die onderdeel is van een PHP database. die tabel heeft een aantal velden (ik noemde het kolommen in mijn bericht) en over één zón veld gaat mijn vraag over.
In dit geval kan je uitgaan van de situatie dat je in PHP MyAdmin zit.
-
01-12-2011, 18:45 #4
- Berichten
- 57
- Lid sinds
- 19 Jaar
Re: PHP tel vraag
Dat is dan geen PHP database, maar (zeer waarschijnlijk) een MySQL database. ;-) Je kunt het gewenste resultaat in ieder geval krijgen met een COUNT i.c.m. een GROUP BY.
-
01-12-2011, 19:00 #5
- Berichten
- 542
- Lid sinds
- 17 Jaar
Re: PHP tel vraag
Hi Rogier, daar heb je ongetwijfeld gelijk in. Dank je wel voor je reactie, ik laat het je weten of het gelukt is.
-
01-12-2011, 19:14 #6
- Berichten
- 750
- Lid sinds
- 15 Jaar
Re: PHP tel vraag
Select count(id_profile) as id_profile_count from jetable group by id_profile order by id_profile_count desc limit 1 zou het moeten wezen
-
01-12-2011, 22:10 #7
- Berichten
- 542
- Lid sinds
- 17 Jaar
Re: PHP tel vraag
"Select count(id_profile) as id_profile_count from comments group by id_profile order by id_profile_count desc limit 1"
-
01-12-2011, 23:44 #8
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: PHP tel vraag
Als het 'id_profile' veld een 'id' veld is (primary index) dan is het uniek en komt elke waarde 1 keer voor. De max waarde krijg je met select max(id_profile) from jetabel
Als het geen uniek veld is en daadwerkelijk dubbele waarden bevat kun je het met de volgende query opvragen:
select id_profile, count(*) as aantal from <je-tabel> group by id_profile order by aantal desc limit 1
Bovenstaande geeft je 2 velden terug: de waarde die het meeste voorkomt en het aantal keer dat het voorkomt.
Door de 'limit 1' heb je dan echter wel de mogelijkheid dat andere nummers die even vaak voorkomen niet getoont worden.
Wil je alle nummers zien die het meeste gebruikt worden kun je deze wacky query gebruiken, al zijn er mooiere oplossingen :)
select id_profile, count(*) as aantal from <jetabel> p group by id_profile
having aantal >= (select count(*) as aantal2 from <jetabel> group by id_profile order by aantal2 desc limit 1) order by aantal desc
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic