login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[mysql] next id

Offline jaronneke - 08/06/2009 18:33
Avatar van jaronnekeMySQL interesse Hoe kan ik het volgende ID ophalen?

Ik heb bijvoorbeeld:

1,2,3,4,6

Nu wil ik dat mijn volgende ID 5 is .. en geen 7.

Hoe is dit mogelijk?

Alvast bedankt.

8 antwoorden

Gesponsorde links
Offline Martijn1989 - 08/06/2009 19:00
Avatar van Martijn1989 PHP ver gevorderde Ga naar je tabel in phpmyadmin, als we het daar over hebben > Handelingen en dan bij auto increment moet op 0 staan .. als het goed is vult hij dan weer alle lege plekken op.
Offline larssy1 - 08/06/2009 19:03
Avatar van larssy1 MySQL beginner Dit probleem krijg je automatisch als je zogehete records verwijderd uit je tabel. Hij gaat gewoon met de laatste gemaakte id.

Dit kun je handig oplossen door in je PHPMYADMIN op Legen achter de bewuste kolom te drukken, Zo worden de ID's gereset 
Offline Koen - 08/06/2009 19:05
Avatar van Koen PHP expert Ik zou het zo doen:

Je haalt de ID's op uit de database, vervolgens steek je ze in een array. Dan haal je de laatste waarde van die array eruit met PHP.net: end, x. Met die waarde kan je dan via PHP.net: range een array maken die de getallen 1 tot x. Uiteindelijk kan je dan met PHP.net: array_diff het verschil tussen die twee arrays berekenen, nu heb je dus een array waarvan de eerste waarde die waarde is die je zal moeten gaan gebruiken als ID.

Even een praktisch voorbeeldje:

  1. <?php
  2. $query = mysql_query("SELECT id FROM tabel")or die(mysql_error());
  3. $aIDS = array();
  4. while($aResult = mysql_fetch_assoc($query))
  5. {
  6. $aIDS[] = $aResult['id'];
  7. }
  8. $aAlleNummers = range(1, (int) end($aIDS));
  9. $aVerschil = array_diff($aAlleNummers, $aIDS);
  10. $iNieuwID = array_shift($aVerschil);
  11. echo $iNieuwID;
  12. ?>


Succes 
Offline Martijn - 08/06/2009 19:35
Avatar van Martijn Crew PHP lol $aIDS -> $aids
Offline Wim - 08/06/2009 19:41
Avatar van Wim Crew algemeen Waarvoor wil je dit trouwens? Mogelijk is er een betere manier. Ik zie niet onmiddelijk een toepassing waar dit nodig is...
Offline jaronneke - 09/06/2009 09:03 (laatste wijziging 09/06/2009 09:11)
Avatar van jaronneke MySQL interesse Bedankt voor de reacties, ik ga zometeen even kijken ofdat ik hier wijs uit kan ..

ik wil dit gaan gebruiken voor een menu volgorde ( met up en down )

Dus een soort van controle 

edit:
  1. $query = mysql_query("SELECT volgorde FROM licentie WHERE uid = '".$_GET["id"]."'")or die(mysql_error());
  2. $aIDS = array();
  3. while($aResult = mysql_fetch_assoc($query))
  4. {
  5. $aIDS[] = $aResult['volgorde'];
  6. }
  7. $aAlleNummers = range(1, (int) end($aIDS));
  8. $aVerschil = array_diff($aAlleNummers, $aIDS);
  9. $iNieuwID = array_shift($aVerschil);
  10. echo "Nieuw id : ".$iNieuwID;


Hierbij krijg ik geen resultaat?
Offline Bart - 09/06/2009 09:14
Avatar van Bart PHP expert Dan kan je toch ook het menu item een ID meegeven en met een plaatsID ?
Offline ArieMedia - 09/06/2009 09:15 (laatste wijziging 09/06/2009 09:16)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Citaat:
ik wil dit gaan gebruiken voor een menu volgorde ( met up en down )


Extra veld aanmaken met de naam volgorde?

Edit: Quicky was eerder
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s