PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In der Tabelle IDs neu ordnen



FlexMax
23.10.2008, 00:55
Hallo,

Ist es möglich einer Spalte der Tabelle (zb. vms_linker) die IDs neu anzuordnen.
Weil mit der Zeit entstehen ja Löcher (zb. ID -> 1,2,3,6,8,9,15) wenn sich zb. User löschen oder ähnliches.

Im Prinzip wäre das ja egal, aaaaber wenn es jetzt zb. um eine Auszahlungsspalte geht, wo der User dann sieht (Nach 2000 Auszahlungen bin ich dran) wann er dran ist, ist das ergebniss mit der zeit ja dann verfälscht.

Kann man da was machen?

Liebe Grüsse
Markus

(PHPMyAdmin)

Lokutos
23.10.2008, 02:53
und die reflinks der user ändern sich dan auch ???
denke ich freut deine user nicht so einfach die buchungen der uid rausnehemn die gelöscht sind

Denkstütze:

DELETE (table) WEHRE uid = 'uid'

FlexMax
23.10.2008, 07:17
und die reflinks der user ändern sich dan auch ???
denke ich freut deine user nicht so einfach die buchungen der uid rausnehemn die gelöscht sind

Denkstütze:

DELETE (table) WEHRE uid = 'uid'

Nein Nein, Ich meinte nicht die Userspalte sodass sich ihre ID ändern würde.

Ich meinte...
User 1:hat AuszahlungsID 1000 und 1008.
User 2:hat AuszahlungsID 1004,1007 und 1009.
1002,1003,1006 fehlen.

Jetzt würde user 2 laut statistika sehe das er zur auszahlung an 4ter stelle steht.
Das ist aber nicht richtig, da er ja schon an zweiter stelle steht (1002 und 1003 fehlen ja)

Natürlich desto grösser das ganz desto schlimmer werden auch die Löcher.

Also wäre toll wenn ihr wüsstet wie das ginge.

Liebe Grüsse
Markus

eRaaaa
23.10.2008, 08:33
wie kommt es denn zu einer löschung von 1002 und 1003 beispielsweise?

also klar gibt es lösungen dafür, aber im normalfall sollte man nie increment ids verändern.

mir würde jetzt spontan einfallen, dass du ne abfrage machst (beispiel für user 2) dass du schaust welche ids KLEINER als seine id 1002 ist und diese dann zählst (entweder per mysql oder php).so würdeste zumindestens an die zahl kommen, an welcher stelle er sich befindet.

FlexMax
23.10.2008, 12:09
wie kommt es denn zu einer löschung von 1002 und 1003 beispielsweise?

Beispielsweise Löschung, Sperrung bei Klamm.de, Löschung wegen verstoss gegen AGB meinerseits, Inaktivität, usw.



also klar gibt es lösungen dafür, aber im normalfall sollte man nie increment ids verändern.

mir würde jetzt spontan einfallen, dass du ne abfrage machst (beispiel für user 2) dass du schaust welche ids KLEINER als seine id 1002 ist und diese dann zählst (entweder per mysql oder php).so würdeste zumindestens an die zahl kommen, an welcher stelle er sich befindet.

Aber 100 User nachziehen, weil paar ausfallen wäre heftig.
Also einfache Lösung gibts da keine, wie ich sehe...

Naja, habs nur gut gemeint für die User, damit Sie auch wirklich sehen wann Sie dran sind.

Liebe Grüsse
Markus

Lokutos
23.10.2008, 17:42
hm du hast doch sicher ne auslese aus der db

die in etwa so aussehen sollte

select SUM(*) from VMS_Auszahlung

da fügst du halt n Left Join dran und liest die uid aus und machst dan
ne abfrage ob die uids existieren

eRaaaa
24.10.2008, 03:24
hm du hast doch sicher ne auslese aus der db

die in etwa so aussehen sollte

select SUM(*) from VMS_Auszahlung

da fügst du halt n Left Join dran und liest die uid aus und machst dan
ne abfrage ob die uids existieren

sum(*) ? , aggregatfunktion mit left join? geht sowas ? bzw wie kommt er dann an die auszahlungsstelle?

FlexMax
24.10.2008, 10:15
Hallo,

Also sum(*) geht definitiv wie auch count(*) aber mit Left muss ich mal testen.
Wenn er die einfach "überlesen" würde die "Löcher" wäre das natürlich super.

Liebe Grüsse
Markus

Sebmaster
24.10.2008, 14:41
Wenn er die einfach "überlesen" würde die "Löcher" wäre das natürlich super.
Tut er :yes:

Nach der Art:



SELECT COUNT(*) FROM vms_auszahlungen_doppler d LEFT JOIN vms_kontodaten k ON k.uid=d.uid WHERE k.uid IS NOT NULL AND d.id > $eigeneID

so in etwa:biggrin1: