+ Antworten
Ergebnis 1 bis 12 von 12

Thema: Nächste ID ermitteln

  1. #1
    TP-Insider Rizzla macht alles soweit korrekt Avatar von Rizzla
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    668

    Nächste ID ermitteln

    Hi

    Die Id ist als autoincrement definiert, wenn ich jedoch einen Datensatz lösche entsteht ein Loch.

    Wie ermittel ich die jeweils nächste vorhandene ID innerhalb eines Datensatzes??
    Format C:

  2. #2
    TP-Specialist Jürgen bringt sich richtig ein Jürgen bringt sich richtig ein Avatar von Jürgen
    Registriert seit
    Feb 2002
    Ort
    Wien
    Beiträge
    2.518
    Hi,

    lt. Handbuch gibt die mysql-Funktion

    LAST_INSERT_ID() die absolut zuletzt vergebene id per auto_increment aus, die wird in einem log gespeichert.

    Ich hab es aber noch nicht ausprobiert...

    Grüße,
    Jürgen

  3. #3
    TP-Supporter Howie Munson II macht alles soweit korrekt Avatar von Howie Munson II
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    435
    Das dürfte nicht so viel bringen, die Last_insert gibt ja nur die letzte vergebene ID wieder, da hat man ja keinen Hinweis auf die Lücken, da Autoincrement sich ja nur die höchste bisher vergebene ID sucht und um eins erhöht

  4. #4
    TP-Insider Rizzla macht alles soweit korrekt Avatar von Rizzla
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    668
    die letzte nützt mir leider nix, ich bräuchte das so wie howie das sagt wenn z.B. die ID's so lauten 1 2 3 4 6 9 10, das beim blättern von der id 4 gleich auf die 6 gesprungen wird.
    Format C:

  5. #5
    Registered User Radoo.de macht alles soweit korrekt
    Registriert seit
    Feb 2002
    Beiträge
    667
    .
    Geändert von Radoo.de (07.09.2003 um 08:37 Uhr)

  6. #6
    TP-Insider Rizzla macht alles soweit korrekt Avatar von Rizzla
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    668
    Das war ich - schreib was über frauen und jeder merkt sichs

    Ich kann die abfrage nich so gestalten wie dus vorschlägst, es wird nämlich bei der datenbankabfrage schon nach rubriken ausgelesen und innerhalb dieser rubriken soll dann über die id weitergeblättert werden.

    Wenn jetzt zum beispiel der erste datensatz die id 1 hat und in die rubrik rote farbe gehört, der 2. hat id 2 und rubrik gelbe Farbe, der 3. die id 3 und wieder rubrik rote farbe

    dann soll er über einen link z.B. rote farbe, auf die ausgabeseite gelangen in der jeweils 1 datensatz ausgegeben wird und durch klick auf nen weiterbutton soll die nächste id die der rubrik rote farbe angehört ausgelesen werden

    Ich hoff ich hab das verständlich ausgedrückt??
    Format C:

  7. #7
    jph
    jph ist offline
    TP-Veteran jph ist auf einem guten Weg Avatar von jph
    Registriert seit
    Apr 2001
    Beiträge
    1.577
    ich habe das problem noch nicht ganz verstanden: du liest etwas aus der datenbank aus nachkategorien also:
    select * from table where kategorie='$kategorie' richtig? und jetzt willst du immer einen aus diesen ausgeben?
    machs doch so:

    select * from table where kategorie='$kategorie' limit $start, 1
    dann muss du start immer um eins hochsetzen vor dem neuauslesen-->am besten per datei.php?start=alter_start+1

  8. #8
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    radoo ist da schon auf der richtigen fährte.
    halt nich nur einen ds ausgeben sondern auch noch die folgenden
    du musst halt dann bei der ausgabe den recordset nur um eins weiterzählen und dann die aktuelle id mitübergeben.

    bsp.
    abfrage:
    select * from frauen where id >= $aktid

    dann gibts du nur den ersten und zweiten rs aus.
    1. rs = $aktid
    2. rs = $aktid+1 = $id2

    im link aktuell kommt dann aktuell.php?id=$aktid
    im weiter dann halt weiter.php?aktid=$id2

    somit handelst du dich weiter, ohne nur einen gedanken an deine schlüssel zu verschwenden - wär auch nicht im sinne einer relationalen datenbank.

    lf

    p.s. alles meinem kranken hirn entsprungen und nicht auf richtigkeit getestet. weiters solltes du das dann auch noch in php und mysql konforme syntax bringen.

    p.p.s wenns nicht passt, dann hab ich dein problem wirklich net verstanden
    Gehelft? Hier kannst du dich bedanken.

    mike

  9. #9
    TP-Insider Rizzla macht alles soweit korrekt Avatar von Rizzla
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    668
    Doch Ihr habt das ganz wunderbar verstanden jungs. Ich fang da nur manchmal ganz kompliziert an zu denken und verrenn mich dann. Habe heut mal den ganzen Tag was anderes gemacht und werd mich morgen früh wieder an die Thematik wagen - aber mit dem weiterzählen müsste es ja dann eigentlich klappen.


    Greetz aus Muc
    Format C:

  10. #10
    Registered User Radoo.de macht alles soweit korrekt
    Registriert seit
    Feb 2002
    Beiträge
    667
    .
    Geändert von Radoo.de (07.09.2003 um 08:39 Uhr)

  11. #11
    TP-Insider Rizzla macht alles soweit korrekt Avatar von Rizzla
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    668
    hehe - der ist gut - hab ich zuerst übersehen
    Ne das ganze gibt ein erotikportal. Da können die mädels halt Ihre Anzeigen aufgeben und jeder kann dann gucken.
    Format C:

  12. #12
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    @ radoo: ein schelm, der böses dabei denkt....

    aber ist das denn nicht DER traum eines jeden sql geplagten mannes: select * from frauen


    lf, der auch gerne so eine große auswahl hätte

    ps: blöd wenn bei select count(*) from frauen ... null rauskommt.
    Gehelft? Hier kannst du dich bedanken.

    mike

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51