• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07

Rank positie

  • J.Rijdes
  • 25 juli 2012 om 20:29
  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 25 juli 2012 om 20:29
    • #1

    Hey,

    Ik heb een script wat wel werkt, maar niet precies zoals ik het wil.

    Hij rekent goed de positie uit van diegene. Maar omdat onder degene onder de eerste 6 allemaal 0 kracht hebben krijgen ze allemaal #6.
    Hoe kan ik zorgen dat dit gewoon doorloopt?

    PHP
    $result = mysql_query("SELECT COUNT(id)+1 AS positie FROM users WHERE kracht > (SELECT kracht FROM users WHERE id='".$list['id']."')") or die(mysql_error());
    	$row = mysql_fetch_array($result);

    MVg.
    Jeffrey

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 25 juli 2012 om 22:38
    • #2

    Aangezien jij een dubble query draait om je position te bepalen is dat natuurlijk af en toe niet handig om dubble query's te draaien wat je hier nodig hebt is een variable die je een +1 count geeft met daarin een sub query die heel de tabel afdraait,

    wat je dan doet is dit:

    PHP
    SET @count = 0;
    
    
    SELECT @count := @count + 1 AS position,
            x.*
    FROM (
            SELECT *
            FROM users ORDER BY kracht DESC
     ) x

    hierdoor wordt de field position toegevoegd bij de result row en kan je gewoon lekker in php je foreach ($row = ...) draaien en gelijk $row['position'] $row['name'] doen :) je was op de goede wel met je sub query alleen niet goed toegepast.

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 25 juli 2012 om 22:48
    • #3

    Ik heb momenteel het volgende:

    PHP
    $result = mysql_query("SET @count = 0; SELECT @count := @count + 1 AS position, x.* FROM (SELECT * FROM users WHERE id = '".$list['id']."' ORDER BY kracht DESC) x") or die(mysql_error());
    	$row = mysql_fetch_array($result);

    Maar krijg de volgende error:

    PHP
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @count := @count + 1 AS position, x.* FROM (SELECT * FROM users WHERE id ' at line 1
  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 25 juli 2012 om 22:50
    • #4

    als je die query zonder je eigen query draait eerst is draait in phpmyadmin en daarna gaat aanpassen naar je php omgeving ga je snapen hoe en wat en je kan alsnog dan gewoon enters in je php gebruiken om meer dan alleen "line 1" te achter halen maar line 4 of 5 is wel wat makkelijker :)

    EDIT:
    waarom doe je een where id= in de sub query zetten wil je niet alle resultaten hebben?? Of hoe zie je dit?

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 25 juli 2012 om 22:54
    • #5

    Bedankt,

    Maar als ik:

    PHP
    SET @count = 0;
    
    
    SELECT @count := @count + 1 AS position,
            x.*
    FROM (
            SELECT *
            FROM users ORDER BY kracht DESC
     ) x

    invoer in phpmyadmin krijg ik netjes een lijst met volgorde.
    Alleen als ik dan WHERE id = '7' of WHERE id = '25' gebruik. Komen ze allemaal op position 1 ..

    Sorry ik heb hier nog nooit eerder mee gewerkt..

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 25 juli 2012 om 22:55
    • #6

    Waarom zou je die WHERE id = erin willen zetten neem aan deze allemaal wel een uniek id hebben of niet?

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 25 juli 2012 om 22:56
    • #7

    De gebruikers hebben allemaal een uniek id ja.
    En ik wil laten zien op hun profiel welke positie ze in de ranklijst staat, die op kracht gesorteerd is.

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 25 juli 2012 om 22:59
    • #8
    PHP
    SET @count = 0; 
    
    
    SELECT @count := @count + 1 AS position, 
    	x.* 
    	FROM (
            	SELECT 
                    	* 
                    FROM 
                    	`[weapons]` 
                    WHERE 
                    	id = 1 
                    ORDER BY 
                    	attack 
                   	DESC
                 ) x
    Toon Meer

    als ik deze in mijn eigen pma draai doet hij het wel? Is je $list['id'] al een int? want dan hoeven de '' ook niet

    Uiteraard komt er dan wel uit position 1 uit

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 25 juli 2012 om 23:02
    • #9
    PHP
    SET @count = 0; 
    
    
    SELECT @count := @count + 1 AS position, 
        x.* 
        FROM (
                SELECT 
                        * 
                    FROM 
                        `users` 
                    WHERE 
                        id = 7 
                    ORDER BY 
                        kracht
                       DESC
                 ) x
    Toon Meer

    Dat voor ik uit in pma. Alleen krijg bij iedereen position is 1

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 27 juli 2012 om 10:44
    • #10

    Ik zal het op een andere manier doen, bepaal alle posities van de gebruikers en selecteer dan de positie van de huidige gebruiker.

    PHP
    SELECT u.id,
           (SELECT COUNT(*)
              FROM users
             WHERE users.kracht >= u.kracht) AS position,
           u.kracht
      FROM users u
     WHERE u.id = '7'

    Dit stukje zorgt ervoor dat hij alle posities per user bepaald en daarna de specifieke user bepaald. En het zal je een unieke positie geven ook wanneer ze gelijk staan.

    Wanneer jouw id hoger is dan een ander en je kracht staat gelijk dan zal hij jou erboven zetten, dit is natuurlijk oneerlijk dus zal je hier nog is naar moeten kijken. Dit is altijd handig om te bepalen met geld etc erbij. ( Hierbij denk ik gelijk terug naar de tijd van crimeclub, goeie ouwe tijd! )

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 27 juli 2012 om 12:46
    • #11

    Bedankt NielsB,

    Alleen hoe zorg ik er dan voor dat die als 2e selecteert op level?

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 27 juli 2012 om 17:33
    • #12

    Oke is je level een int met 1 2 3 4 5 nummering of hoe zit deze in elkaar?

    Je kan deze gewoon in je WHERE erbij te doen. ;)

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 27 juli 2012 om 19:13
    • #13

    Level is inderdaad gewoon een INT met 1, 2, 3 tot 100.

    Nieuwe reactie samengevoegd met originele reactie op 27.07.12 19:32:04:
    Het script werkt trouwens ook niet goed.
    Als je nu 0 kracht hebt, is iedereen Position #23..

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 30 juli 2012 om 09:47
    • #14

    Ik kom zometeen even met een update ! ;)

    Edit:
    Hieronder een verbeterde versie van Patrick. Hij leest nu alle posities per user uit.

    PHP
    SET @i = 0;
    
    
    SELECT 
        id, 
        position, 
        kracht
    FROM (
        SELECT 
             u.id, 
             @i := @i +1 AS position,
             u.kracht
        FROM 
             users u
        ORDER BY 
             u.kracht DESC
    )t
    Toon Meer

    En hieronder per user:

    PHP
    SET @i = 0;
    
    
    SELECT 
        id, 
        position, 
        kracht
    FROM (
        SELECT 
             u.id, 
             @i := @i +1 AS position,
             u.kracht
        FROM 
             users u
        ORDER BY 
             u.kracht DESC
    )t
    WHERE id = '7'
    Toon Meer

    Wil je dat ik die level ook nog erbij doe of kan je dit zelf?

    Edit:
    Wanneer je naast kracht ook op level sorteert dan kan je positie bepalen wanneer de kracht gelijk staat.

    PHP
    SET @i = 0;
    
    
    SELECT 
        id, 
        position, 
        kracht, 
        level 
    FROM (
        SELECT 
            u.id, 
            @i := @i +1 AS position, 
            u.kracht, 
            u.level
        FROM 
            test u
        ORDER BY 
            u.kracht DESC, 
            u.level DESC
    ) t
    Toon Meer

    En dit is per user:

    PHP
    SET @i = 0;
    
    
    SELECT 
        id, 
        position, 
        kracht, 
        level 
    FROM (
        SELECT 
            u.id, 
            @i := @i +1 AS position, 
            u.kracht, 
            u.level
        FROM 
            test u
        ORDER BY 
            u.kracht DESC, 
            u.level DESC
    ) t
    WHERE id = '7'
    Toon Meer

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 30 juli 2012 om 09:56
    • #15

    Sorry dat ik het zeg, maar als jij dit zou kunnen doen zal het fijn zijn :$

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 30 juli 2012 om 10:01
    • #16

    Zie mijn laatste edit in mijn post! ;)

    Edit:
    De where ook nog even toepast met level!

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 30 juli 2012 om 10:13
    • #17

    Echt bedankt hij werkt!
    Ben je eeuwig dankbaar (a)

    Kan een slotje op! :slotje:

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 2 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design