login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Opgelost] MySQL: een genummerde kolom toevoegen bij een SELECT-statement

Offline bosgroen - 17/08/2006 23:43 (laatste wijziging 19/08/2006 12:58)
Avatar van bosgroenGouden medaille

PHP interesse
Ok, kheb mijn probleem wat vereenvoudigd om duidelijk te maken wat ik nodig heb.
oorspronkelijke tabel:
  1. | id | wie | land | aantalposts
  2. =============
  3. | 1 | ik | be |
  4. | 2 | jij | nl |
  5. | 3 | wij | be |
  6. | 4 | zij | be |


Met een select statement, bv:
SELECT XX, wie, land WHERE land = 'be'
wil ik een tabel bouwen met een genummerde kolom
  1. | XX | wie | land | aantalposts
  2. =============
  3. | 1 | ik | be |
  4. | 2 | wij | be |
  5. | 3 | zij | be |


Is het mogelijk om zo'n XX-kolom door MySQL te laten maken? (hernummerde id's). Ik kan het niet in php doen, daar dit pas een gedeelte is van mijn query is.

edit: Mijn probleem is opgelost, zie lager, dit op een totaal andere wijze! Echter nummeren in mysql blijkt niet mogelijk, jammer want tis eigenlijk dwaas dat je telkens een tellertje nodig hebt.

9 antwoorden

Gesponsorde links
Offline Maarten - 17/08/2006 23:44
Avatar van Maarten Erelid Nee, maar je kan dat wel met PHP doen, per while() doorloping een tellertje laten verhogen?
Offline bosgroen - 17/08/2006 23:49
Avatar van bosgroen Gouden medaille

PHP interesse
Jammer dat dit niet kan in MySQL,
Kan het ook niet door een temporary table te bouwen met auto_increment?
Offline Maarten - 17/08/2006 23:56
Avatar van Maarten Erelid Ja, maar als je het weet, waarom vraag je het dan?
Offline Simon - 17/08/2006 23:57 (laatste wijziging 18/08/2006 00:00)
Avatar van Simon PHP expert laat het gewoon door php doen?
  1. $i=1;
  2. while($fetch = mysql_fetch_assoc($query)) {
  3. echo $i . ' : ' . $fetch['naam];
  4. $i++;
  5. }

dat kost weinig parsetijd hoor, een temp tabel maken volgens mij meer
Offline CDNC - 18/08/2006 00:13
Avatar van CDNC PHP ver gevorderde maak er dan ineens een for-loop van, dat werkt efficiënter.
Offline bosgroen - 18/08/2006 01:09 (laatste wijziging 18/08/2006 01:11)
Avatar van bosgroen Gouden medaille

PHP interesse
Citaat:
laat het gewoon door php doen?
Ja, zal ik blijkbaar moeten doen

tis gewoonweg jammer, dat ik de hele lijst uit de database moet halen, als ik bijvoorbeeld enkel en alleen wil weten op welke positie persoon 'wij' staat in de toplijst van aantalposts
(uiteraard in mijn toepassing is de lijst veel langer)


Citaat:
Ja, maar als je het weet, waarom vraag je het dan?
enkel en alleen 'van gehoord'; geen flauw idee hoe ik dat dan ook daadwerkelijk zou moeten klaren. Maar is blijkbaar ook geen evidente oplossing.
Offline Simon - 18/08/2006 10:42
Avatar van Simon PHP expert @cdnc, waarom zou jij daar een for loop van maken? ik vraag me af hoe je dat zou klaren...
Offline Thomas - 18/08/2006 13:09 (laatste wijziging 18/08/2006 13:10)
Avatar van Thomas Moderator
Citaat:
tis gewoonweg jammer, dat ik de hele lijst uit de database moet halen, als ik bijvoorbeeld enkel en alleen wil weten op welke positie persoon 'wij' staat in de toplijst van aantalposts
(uiteraard in mijn toepassing is de lijst veel langer)
Mja, dan zul je toch moeten tellen, om zo te bepalen op welke positie iemand staat.

Of je moet op elk moment bijhouden op welke positie iemand staat door toevoeging van een kolom positie, die je elke keer moet updaten... Tis eigenlijk precies hetzelfde probleem dat Voldemort heeft, alleen dan net iets anders .
Offline bosgroen - 19/08/2006 12:55 (laatste wijziging 19/08/2006 12:58)
Avatar van bosgroen Gouden medaille

PHP interesse
opgelost (met twee eenvoudige queries):
(probleembeschrijving zie twee reacties vroeger)

  1. "SELECT aantalposts FROM tabel WHERE wie = 'wij' LIMIT 1"
  2. "SELECT count(pid) as positie FROM tabel WHERE aantalposts <= ".$aantalpost
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s