Sponsored Links |
|
|||
Frage zu 2.: Warum sollte eine ID doppelt vorkommen? siehe deinem Bsp.: Wenn ich die ID = 5 lösche, ist sie nicht mehr belegt, was bedeutet, dass man die wieder belegen kann.
Den Sinn deiner Frage verstehe ich aber nicht. Gruß
__________________
|
|
||||
Möglichkeit 2 würde ich ganz schnell wieder vergessen.
Wenn ein Datensatz per auto-increment die ID 5 erhält, dieser Datensatz dann gelöscht wird und ein neuer Datensatz eingefügt wird, dann liefert max(...) die ID 4, +1 wäre dann 5, aber die ID, die tatsächlich vergeben wird ist die 6, da wäre das Chaos dann perfekt. Die 3. Möglichkeit wäre evtl. die schönste, allerdings nur, wenn man die Abfrage direkt per Sub-Select in das Query einfügt, da ansonsten ebenfalls Fehler entstehen können, soll heißen, dass die Abfrage nach der nächsten Auto-increment-ID und das einfügen des Datensatzes atomar gestaltet werden muss, damit das funktioniert, daher als Sub-Select. Bisher hole ich mir die ID immer mit der 1. Möglichkeit und füge diese dann in einem Extra-Statement in eine oder mehrere andere Tabellen ein, wenn ich das brauche. Frage mich zwar, warum Du die gleiche ID in die selbe Tabelle 2 mal eintragen willst, aber das musst Du wissen. Ich tendiere also ganz klar zur 1. Variante, oder aber zur 3., aber nur, wenn Abfrage- und Einfüge-Operation atomar gestaltet werden. |
|
||||
[QUOTE=fox;364737]
PHP-Code:
Aber $id enthält eine Zahl die es vielleicht in deiner Tabelle nicht (mehr) gibt. Brauchst du vielleicht sowas: WHERE id >= 4 |
|
||||
Zitat:
Zitat:
Beispiel: example.com/5-newssystem-mit-seo/ Der rote Teil steht in der Datenbank. Wenn ich mir das so ansehe, ist es wohl fast leichter die Adresse mit mod_rewrite bzw. einer RegExp. zu zerschnipseln und dann in PHP nach der ID den Eintrag zu liefern. Zitat:
Zitat:
Ganz klar, denn der auto-increment-Wert ist IMMER eine Zahl, die in der Tabelle nicht existiert
__________________
:) Geändert von fox (01.01.2008 um 23:57 Uhr) |
|
||||
Ich glaube da kommst du wirklich besser, wenn du einfach per PHP am ende die url zusammensetzt anstatt ne neue Spalte auzumachen.
Die enthält ja letztlich nur Daten die du schon gespeichert hast. Und wehe das URL-Format wird geändert na viel Spaß wenn du so sagen wir 1000 Einträge hast
__________________
Meine Spielwiese: http://blog.kanedo.net Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt Für open Source Liebhaber: open Com Auch ich Zwitschere als @kanedo |
|
||||
Also einen auto-increment-Wert solltest du nie selber ändern oder eintragen, der Sinn einer solchen ID ist nicht, dass du einen Zähler hast, sondern er soll einen Datensatz spezifisch identifizieren, auch in anderen Tabellen. Deshalb ist die ID, sobald du den Eintrag löscht, nicht mehr frei und sollte auch nicht benutzt werden.
|
|
||||
Okay, vielen dank euch allen
Ich werde das ganze wohl umstellen und die Adresse nicht mehr in der Datenbank speichern. Zitat:
__________________
:) |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
IE7 Breitenproblem / Anzeige zu schmal (<div>)? | hoi3008 | CSS | 19 | 10.02.2011 18:39 |
z-index hoch, dennoch grafik nicht ganz oben | bergg | CSS | 6 | 27.10.2010 17:02 |
rätselhafter Leerraum zwischen Content und Footer im IE | jhonnybravo | CSS | 5 | 04.03.2010 12:47 |
IE7 fixing - expandable menu | matsie | CSS | 6 | 10.04.2008 16:55 |
CSS Layout im Dreamweaver skurril - online jedoch korrekt | cellshade | CSS | 14 | 27.08.2007 16:51 |