Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Nach ändern von User ID angleichen????

Hallo Leute!


habe mir ein Usersystem geschrieben, in dem man neue Benutzer hinzufügen / löschen / editieren kann.

Tabelle:

id | user | pass
----------------------------
1 | user1 | abc
2 | test | abc

Feld 'id' ist Primärschlüssel, auto_increment

Wenn ich den User mit der ID=2 lösche und ich dann einen neuen User anlege, bekommt er die id=3.
User1 hat die ID=1 , der neue User die ID=3.

Gibt es eine Möglichkeit die id-Folge lückenlos anzupassen wenn ich einen Datensätze lösche?
Also, dass dann der neue User die ID=2 bekommt?

Vielen Dank für Eure Hilfe!

MFG

Daniel

Hier gehts zum Orginal Eintrag "Nach ändern von User ID angleichen????" im Forum

Antworten

Ich denke mal, dass die Änderung, dann in der Datei zum Löschen des Users vorgenommen werden muss.

Quellcode: delete.php

Code:                   In Zwischenablage kopieren (nur IE)
1">

Gruß

Daniel


2.

Hat jemand eine Idee, wie er mir helfen könnte???


MFG

Daniel


3.

Zitat:
php2005 postete
Hat jemand eine Idee, wie er mir helfen könnte???

ich weiss nicht ob dir das hilft, aber ich kann dir mal gerne meine meinung dazu sagen:
1.: es stört ja nicht, wenn eine id fehlt.

2.: wenn du anfängst, solche lücken zu füllen, kann es auch schnell pasieren, dass du plötzlich (entgegen des sinnes eines solchen feldes) doppelte einträge hast.

3.: etwas mysql-doku dazu:
http://dev.mysql.com/doc/refman/4.0/de/innodb-auto-increment-column.html
http://dev.mysql.com/doc/refman/4.0/de/myisam.html
meines wissens nach hat das auch was mit der verwendeten db-art zu tun (sprich innodb, isam, myisam...)
allerdings habe ich das jetzt auf die schnelle nicht in der mysql-doc gefunden.
ich hoffe, dass dir die beiden links weiterhelfen.

gruss, pseudo


4.

Hi

Ich nehme an, dass die id ein auto_increment Feld ist. Dieser id kommt ja lediglich die Aufgabe zu einen Datensatz in der Tabelle eindeutig zu identifizieren und es soltle deiner Anwendung vollkommen egal sein, welchen Wert die id hat.

Da ja auch die user wohl eindeutig sind, hättest du auch diese Spalte als Primary Key verwenden können.
So sollte ein UNIQUE Index über der user Spalte liegen, um doppelte Vergaben von usern zu vermeiden.


5.

Danke für Eure Tipps,

ich werde heute, im Verlauf des Tages, versuchen, user als PRIMARY KEY einzurichten.

Meine Frage ist aber, wie kann ich dann in meiner Tabelle, wo die user angezeigt werden, eine Laufnummer
festlegen (User: 1,.......). Das geht ja dann nicht mehr, oder?

Vielen Dank


MFG

Daniel


6.

Zitat:
Meine Frage ist aber, wie kann ich dann in meiner Tabelle, wo die user angezeigt werden, eine Laufnummer
festlegen (User: 1,.......). Das geht ja dann nicht mehr, oder?

warum willst du denn unbedingt fortlaufende nummern haben?
wenn du wissen willst, wieviele user du hast, mach nen count
alles andere ist umständlich :o)
oder hast du nen bestimmten grund, warum das fortlaufend sein muss?


gruss, pseudo


7.

Ja, ich möchte fortlaufende Nummern haben, dami man eine Übersicht hat, wie viel Benutzer da sind, und das jeder Benutzer ne nummer bekommt.

Kann man sowas recht einfach realisieren??


Vielen Dank.

MFG

Daniel


8.

wie gesagt, mach n count, aber an dem autoincrement würde ich nix rumfingern :o)

gruss, pseudo


9.

ja aber beim count wir doch nur die gesamtanzahl ausgegeben, oder??

Ich möchte ja für jeden user eine fortlaufende nummer haben


MFG

Daniel


10.

Die fortlaufende Nummer gehört aber nicht in die DB. Sowas erledigst du mit PHP bei der Anzeige der Daten, indem du einfach eine Zählvariable mitlaufen lässt.


11.

joa, vielleicht hätt ich mich besser ausdrücken sollen :o)
machst du einfach ein
Code:                   In Zwischenablage kopieren (nur IE)
2">

gruss, pseudo


12.

ich probiers mal, danke
// antworte gleich

MFG

Daniel


13.

Also irgendwie bekomme ich das mit dem Einbauen nicht hin, ich möchte da, woe UserID steht, dass da die gezählten Sachen stehen (also 1, 2,....). Kann mir einer helfen, klappt irgednwie nicht.

Datei: show.php
Code:                   In Zwischenablage kopieren (nur IE)
3">

MFG

Daniel


14.

Code:                   In Zwischenablage kopieren (nur IE)
4">

gruss, pseudo


15.

Danke pseudo, aber wie kann ich es umgekehrt machen, also dass unten die 1 steht??


MFG

Daniel


16.

mach ein count, damit du weisst, wieviele datensätze du hast.
weise diesen wert $i zu (anstatt 0!).
und dann machst du $i--; anstatt $i++;.
aber mache das am ende deiner while-schleife, nicht wie ich es jetzt geschrieben habe am anfang.
also in etwa so hier:

Code:                   In Zwischenablage kopieren (nur IE)
5">




17.

reicht es , wenn ich einfach COUNT dran schreibe?

Code:                   In Zwischenablage kopieren (nur IE)
6">

MFG

Daniel (hab von MysQL kaum Ahnung)


18.

Hi

Wenn es nur darum geht die User in absteigender Folge auszulesen

Code:                   In Zwischenablage kopieren (nur IE)
7">

Damit ist der jüngste (größte Id) der erste in der Anzeige


19.

Nein, leider nicht, es geht darum, die Zahl absteigend anzuzeigen, ich habe nur Probleme das COUNT einzubauen.


MFG

Daniel


20.

entweder machste es in php:

Code:                   In Zwischenablage kopieren (nur IE)
8">

falls da nix kommt mach
print_r($data);
und schau wo es genau drinne steht ;o)

oder mit mysql direkt:
Code:                   In Zwischenablage kopieren (nur IE)
9">

ob es von der geschwindigkeit her nen unterschied macht, weiss ich nicht :o)

gruss, pseudo


21.

also, das klappt bei mir beides leider nicht, kann man das nicht einfach umdrehen, dass er anders rum zählt (unten1, weiter oben2,....)????

MFG

Daniel


22.

Anzahl der rows ermitteln:
Code:                   In Zwischenablage kopieren (nur IE)
10">

Absteigende Ausgabe:
Code:                   In Zwischenablage kopieren (nur IE)
11">




23.

bei mir wird jetzt nichts angeu´zeigt, also kein user,...

???

MFG

Daniel


24.

kann jemand helfen???


MFG

Daniel


25.

Zitat:
php2005 postete
bei mir wird jetzt nichts angeu´zeigt, also kein user,...

???

MFG

Daniel
Gehts auch genauer?
Was hast du eingebaut, gibt es mysql oder php Meldungen?

Am Anfang des scripts mal
Code:                   In Zwischenablage kopieren (nur IE)
12">

angeben


26.

Hi!

es kommt keine Fehlermeldung, ich lade gleich einen Screenshot hoch.

MFG

Daniel


27.

Screenshot:

http://www.directupload.net/show/d/622/y5FAOkTV.jpg

MFG

Daniel


28.

Ausser dass mehrere popups aufgehen sehe ich aber nix

Wie wärs mit ein bisschen Quellcode?


29.

ok, der code:

Code:                   In Zwischenablage kopieren (nur IE)
13">

MFG

Daniel

http://www.directupload.net/show2/d/622/y5FAOkTV.jpg

s


30.

Ich gebs ja zu, heute ist Faschingsdienstag, aber du willst ja etwas von mir, nicht ich von dir...


31.

??

sry, aber sag mir einfach, was du gepostest haben willst?

(k.a.)

sry

MFG

Daniel


32.

ok, ich poste mal den ganzen code (sry) :

index.php
Code:                   In Zwischenablage kopieren (nur IE)
14">

MFG

Daniel


33.

noch jemadn da? :(


34.

[quote]php2005 postete
ok, ich poste mal den ganzen code (sry) :

index.php
Code:                   In Zwischenablage kopieren (nur IE)
15">

MFG

Daniel[/quote]


35.

Sag mal geht’s noch? Nach 6 Minuten drängeln?????

Sorry, aber dir fehlt doch jegliches Grundverständnis der Programmierung. Du musst doch erkennen, dass keine User angezeigt werden können, wenn du sie gar nicht aus der DB ausliest.

So wird das nichts! Du weißt überhaupt nicht, was du tust. Also lerne erst mal die Grundlagen, bevor du das Forum hier zumüllst!

Ich hab wirklich viel Geduld, aber hier ist sie zu Ende....


36.

VIELEN DANK FÜR DEINE HILFE!!!!!!!!!

:) :) :) :) :)

jetzt klappt es, tausend dank!!!

*cheers*

MFG

Daniel


37.

@Swiftnick: sry, tut mir leid


Hier gehts zum Orginal Eintrag "Nach ändern von User ID angleichen????" im Forum
 
phpforum.de | Impressum | Handy Bundles