Dag PHP'ers,
Ik heb een probleempje waar ik niet uit kom. Het gaat om een tabel waarin ik de positie van een rij wil bepalen. De opbouw van de tabel is als volgt.
aanmeldingen
ID - datum - product
Nu wil ik bepalen voor bijvoorbeeld ID=3 op welke POSITIE de rij staat, wanneer men dus de query heeft:
select * from aanmeldingen where product=1 order by datum
Nu wil ik weten welke positie ID=3 dus heeft in de tabel wanneer men ordent op datum, en deze positie wil ik echoën, dus bijvoorbeeld positie=4.
Snappen jullie wat ik bedoel? Iemand een idee?
Alvast bedankt!
Jonas
- PHP - positie in query bepalen, geordend op datum
-
06-08-2010, 21:04 #1
- Berichten
- 1.047
- Lid sinds
- 16 Jaar
PHP - positie in query bepalen, geordend op datum
-
-
06-08-2010, 21:21 #2
- Berichten
- 506
- Lid sinds
- 16 Jaar
Ik weet niet of ik je goed begrijp, maar je kan bijv een tellertje laten lopen bij het uitlezen van het result..
PHP Code:<?php
$sql = 'select * from aanmeldingen where product=1 order by datum';
$result = mysql_query($sql);
$teller=1;
while ($row = mysql_fetch_array($result))
{
$id = $row['id'];
echo "$teller $id <br/>";
$teller++;
}
?>
-
06-08-2010, 21:38 #3
- Berichten
- 548
- Lid sinds
- 16 Jaar
Gewoon iets like:
echo 'Positie: ' . $fetch['positie'];
?
-
06-08-2010, 21:47 #4
- Berichten
- 658
- Lid sinds
- 18 Jaar
Code:SELECT count(*) FROM tabelnaam WHERE datum >= (SELECT datum FROM tabelnaam WHERE id = '3') ORDER BY datum
Resultaat is bijvoorbeeld 4, dat geeft aan dat de rij op de 4e positie staat.Laatst aangepast door Lodewijk d.V. : 07-08-2010 om 07:58 Reden: Extra spatie zorgde voor foutmelding
-
06-08-2010, 23:21 #5
- Berichten
- 155
- Lid sinds
- 18 Jaar
c'mon:
Code:SELECT COUNT(*) FROM tabelname WHERE id< 3 ORDER BY datum
1 kleiner? positie 1
rawr
-
07-08-2010, 07:58 #6
- Berichten
- 658
- Lid sinds
- 18 Jaar
id - datum
1 - 2010-08-05
2 - 2010-08-04
3 - 2010-08-03
4 - 2010-08-06
Mijn Sql geeft 4 (4e plek), dat is het juiste resultaat.
Als je er vanuit mag gaan dat de data in chronologische volgorde is ingevoerd, voldoet jouw SQL. Maar in de meeste gevallen mag je daar niet van uit gaan.
-
07-08-2010, 10:28 #7
- Berichten
- 163
- Lid sinds
- 17 Jaar
Positie van rij (row number) bepaal je m.i. op de volgende manier:
SELECT @rownum:=@rownum+1 rownum, t.*
FROM (SELECT @rownum:=0) r, aanmeldingen t
WHERE t.product = 1
ORDER BY t.datum;
-
08-08-2010, 12:11 #8
- Berichten
- 1.047
- Lid sinds
- 16 Jaar
Het werkt nu. Mooi :)
Bedankt voor de goede hulp!
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