login  Naam:   Wachtwoord: 
Registreer je!
 Forum

database optimaliseren

Offline compudoc - 07/12/2007 18:36
Avatar van compudocPHP beginner weet iemand een manier om de id's te veranderen naar volgorde in database...

dus als ik heb:
ID | xx1 | xx2 | etc.
1 | x | x | x
5 | x | x | x
9 | x | x | x
13 | x | x | x

nou wil ik dat 5 veranderd in 2, 9 in 3 en 13 in 4
zodat het volgende ontstaat:
ID | xx1 | xx2 | etc.
1 | x | x | x
2 | x | x | x
3 | x | x | x
4 | x | x | x

hoe kan ik zoiets maken?

7 antwoorden

Gesponsorde links
Offline marten - 07/12/2007 19:11
Avatar van marten Beheerder dit heeft helemaal nergens mee nodig. Je maakt meer kapot dan dat je er mee op schiet.
Offline ranco - 07/12/2007 19:19
Avatar van ranco PHP gevorderde Niet doen want:
1. Het heeft geen nut
2. Het kost je alleen maar tijd om eens script te schrijven die je beter aan iets anders kunt besteden.
3. Het dient totaal geen doel (tenzij je echt een specifiele reden hebt om dit te doen)
Offline Rik - 07/12/2007 20:08
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Maar omdat je het vraagt zal ik toch antwoord geven. 

Je maakt een scriptje dat alle gegevens uit de tabel haalt en in een array zet. Steeds zet je de velden uit de tabel (behalve het id) in een array en die array voeg je als element toe aan de hoofd array.

Daarna met een while lus er door heen en alles in een nieuwe tabel zetten. Als id kan je dan de key uit de array plus één gebruiken (omdat de keys beginnen bij 0).

Als je een ingewikkelde database structuur hebt raad ik het wel af omdat je script dan behoorlijk ingewikkeld word. Zeker als je met foreign keys werkt raad ik dit af.
Offline webstab - 07/12/2007 21:25 (laatste wijziging 07/12/2007 21:26)
Avatar van webstab PHP ver gevorderde Misschien wil je nieuwsberichten weergeven
(in omgekeerde volgende en dat het id mooi opvolgt)
  1. <?php
  2. $query = mysql_query("SELECT *, COUNT(id) AS aantal FROM nieuws GROUP BY id ORDER BY id DESC") or die("Error:".mysql_error());
  3. $teller = 0;
  4. while ($data = mysql_fetch_array($query)) {
  5. echo "Id van dit nieuwsbericht is: ".($data['aantal']-$teller);
  6. $teller++;
  7. }


Als je limit gebruikt, dan moet je je query wijzigen naar
  1. SELECT *,(SELECT COUNT(id) AS aantal FROM nieuws GROUP BY id) AS aantal FROM nieuws ORDER BY id DESC LIMIT 0,5


(Onder voorbehoud van stomme (typ)fouten, geen tijd om na te kijken)
Offline Rens - 07/12/2007 23:06
Avatar van Rens Gouden medaille

Crew algemeen
Als je dit zou gaan doen, help je je hele database over de zeik.
Stel, we missen tussen 1 en 10 enkele nummers, laten we zeggen 3, 6 en 8.
Dan word het dus als volgt:
1 = piet
2 = jan
4 = klaas
5 = sjakie
7 = henni
9 = sjaakje
10 = pietje.
4 heeft een bericht geplaatst, en 4 is klaas.
Als je het nu gaat vernummerren word sjakie 4, en heeft sjakie het bericht geplaatst.
Klopt niet echt hè... 
Offline Scott - 08/12/2007 00:15
Avatar van Scott Gouden medaille

PHP ver gevorderde
http://www.site...amp;id=728
Offline ranco - 08/12/2007 15:02
Avatar van ranco PHP gevorderde Wanneer je bijvoorbeeld userid's gekoppeld hebt aan andere tabellen zoals bijvoorbeeld bij een forum, dan gaat het helemaal mis.

Pietje heeft id 1, pietje opent een topic, en pietje wordt na een maand verwijderd en alle id's opgeschoond. Nu wordt jantje nr 1. En nu heeft volgens het forum jantje iets gezegd wat eigenlijk gezegd is door pietje. Niet doen dus!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s