SQL dantenbak die id löschen die nicht gebatcueht werden

Hallo erstmal, meine name ist blaq2beatz (spitzname) ich haben ein problem mit einer Datenbank undzwar möchte ich etwas löschen

alos die Datenbank gehört zur einer PHP-Topliste von skoom.de
wenn man sie da anmeldet bekommt man eine Site-ID z.b. http://www.skoom.de/demo/in.php?id=1
,2 ,3… usw.

ja wenn jetzt sich jemad anmeldet und vergisst denn button zum voten alos denn code ist ja seine Site-ID noch in der Datenbank gespeichert aber er benutzt sie nicht.

Nun möche ich die Site-ID löschen geht auch aber wenn sich dann jemand nochmal anmeldet bekommt er eine neue ID und nicht die ID die ich gelöscht habe.

Beispeil es sind 7 Siten in der Datenbank und ich lösche die 7 dann sind es noch 6 nun möche ich aber das wenn sich jemand neu anmeldet die ID 7 bekommt weil wenn nicht dann habe ich so keinen überblick mehr.

ich hoffe mir kann jemand helfen

Gruss

Hi,

wieso stellst du die Frage doppelt ?

TobiLei

Hi,

also ID’s sind in der Datenbank immer fortlaufend, selbst wenn du da eine rauslöäscht, wird die nicht wieder vergeben, weil meistens die Spalte mit autoincrement hochgezählt wird.

Ansonsten musst du folgenden Befehl durchführen :

delete from table where ID = dieID

TobiLei

Hallo blaq2beatz,

ich nehme an, das die ID nicht vom Script sondern von
der Datenbank erzeugt wird und das ist dein Problem, du
kannst natürlich die ID auch im Script erzeugen und dann
deinen gewünschten Effekt erreichen. Die Datenkbank
speichert lediglich den Zählerstand und wenn eine neue
Zeile hinzukommt, wird dieser lediglich hochgezählt und
als neuer ID Wert eingetragen. Du kannst soweit ich
weiss auch den AutoIncrement Wert der Tabellen
zurücksetzen, aber dann werden die IDs wieder von 0
vergeben - mach also für dich keinen Sinn.

Hallo erstmal, meine name ist blaq2beatz (spitzname)

ich haben

ein problem mit einer Datenbank undzwar möchte ich

etwas

löschen

alos die Datenbank gehört zur einer PHP-Topliste von

skoom.de

wenn man sie da anmeldet bekommt man eine Site-ID z.b.
http://www.skoom.de/demo/in.php?id=1
,2 ,3… usw.

ja wenn jetzt sich jemad anmeldet und vergisst denn

button zum

voten alos denn code ist ja seine Site-ID noch in der
Datenbank gespeichert aber er benutzt sie nicht.

Nun möche ich die Site-ID löschen geht auch aber wenn

sich

dann jemand nochmal anmeldet bekommt er eine neue ID

und nicht

die ID die ich gelöscht habe.

Beispeil es sind 7 Siten in der Datenbank und ich

lösche die 7

dann sind es noch 6 nun möche ich aber das wenn sich

jemand

neu anmeldet die ID 7 bekommt weil wenn nicht dann habe

ich so

keinen überblick mehr.

ich hoffe mir kann jemand helfen

Gruss

hallo,

wahrscheinlich handelt es sich in der Datenbank um das erste Feld id mit der Eigenschaft auto_increment.
Man könnte ein neues Datenbankfeld hinzufügen mi8t einem anderen Namen z.B: lfd.

Auf der seite fragt man mit mysql_num_rows()die Anzahl der Tabelleneinträge ab und speichert die in einer Variablen. Diese wird das als lfd benutzt.

also zu Beginn der Seite:
php
Datenbankverbindung herstellen
NUM_ROWS-Abfrage der entsprechenden Tabelleneinträge
neue lfd = Ergebnis + 1
php Ende

Dann kann man über phpmyadmin unbenutzte Datensätze löschen. Da sich die Anzahl verringert werden dann auch wieder überflüssig gewordene Nummern benutzt.

Ich hoffe , ich konnte helfen.

AJM

Zu wenig Info
Welchen datentyp hat die ID in der Datenbank?

Hallo Blaq2beatz,

Deine Frage ist schon einige Monate her und ich dachte, ich hätte Dir geantwortet, habe ich aber scheinbar nicht, sorry dafür!

Ein auto_increment ist dazu gedacht in sog. flachen Tabellen einen eindeutigen Bezeichner zu liefern, daher ist hier keine Änderungsmöglichkeit vorgesehen. So weit ich weiß, kann man die Werte nur per Hand zurücksetzen (PHPMyAdmin), ohne gleichzeitig Daten zu verlieren.

Der richtige Weg in Deinem Fall wäre, einen weiteren Wert in die Datenbank zu schreiben und diesen dafür zu verwenden.

LG, Oliver

Hallo, ich bin mir zwar ziemlich sicher, dir vor einem halbe Jahr schon mal geantwortet zu haben, aber in meinem Profil steht deinen Anfrage als unbeantwortet.

Nun denn:

Das Feld id ist in der Regel mit dem Attribut auto increment ( selbst hochzählend) versehen. Für deine Zwecke empfiehlt es sich ein weiteres Feld anzulegen, meinetwegen „user“ Diese Nummer wird dann so vergeben, das zunächst mit num_rows die Anzahl der Einträge gezählt wird und dann die nächste Zahl also n+1 in das Feld user eingetragen wird. Deinen php code musst du dann natürlich dementsprechend ändern in php?user=7

Die andere Möglichkeit besteht darin, am Ende des Codes den sql -Befehl ALTER TABLE tabellenname AUTO_INCREMENT =Anzahl der Einträge + 1 (siehe oben)
auszuführen.