kostenloser Webspace werbefrei: lima-city


Schnelle ID- Abfrage

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    zhd-dresden

    zhd-dresden hat kostenlosen Webspace.

    Hallo, tag/liebe gemeinde">liebe Gemeinde,
    wieder mal eine Anfängerfrage von mir.
    Wenn ich in meine Tabelle einen neuen Datensatz zufüge muss ich ihm, um ihn später eventuell zu bearbeiten usw., eine neue id zufügen. Dazu lasse ich zur zeit die ganze Tabelle mit while durchlaufen um bis zum letzten Datensatz zu gelangen und addiere dann der id eins dazu.
    Nun meine Frage, gibt es eine einfachere Methode diesen Datensatz, und damit die letzte ID direkt abzufragen?
    Vielen Dank für eure Hilfe, schönen Tag noch,
    Frank
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. zhd-dresden schrieb:
    Hallo, liebe Gemeinde,
    wieder mal eine Anfängerfrage von mir.
    Wenn ich in meine Tabelle einen neuen Datensatz zufüge muss ich ihm, um ihn später eventuell zu bearbeiten usw., eine neue id zufügen. Dazu lasse ich zur zeit die ganze Tabelle mit while durchlaufen um bis zum letzten Datensatz zu gelangen und addiere dann der id eins dazu.
    Nun meine Frage, gibt es eine einfachere Methode diesen Datensatz, und damit die letzte ID direkt abzufragen?
    Vielen Dank für eure Hilfe, schönen Tag noch,
    Frank



    Du kannst einer Spalten die Eigenschhaft A/I (auto increment) geben. Da wird autmatisch immer eine höhere zahl genommen (einfach beim INSERT das feld leer lassen). Bzgl. Deines vorschlages: es geht auch viel eingacher mit mysql_num_rows

    Beitrag zuletzt geändert: 11.6.2015 15:55:50 von mczernin
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    mysql_num_rows ist die überhaupt schlechteste Idee, die du haben kannst. Da wäre es selbst noch sinnvoller nach der ID absteigend zu sortieren und per
    LIMIT
    nur die erste Zeile abzufragen (die dann natürlich die letzte ID enthält), oder gar mit
    max(id)
    direkt die größte ID abfragen.

    Für eine ID wär es aber vermutlich sinnvoller
    AUTO_INCREMENT
    zu nutzen, wie bereits erwähnt wurde.
  5. Autor dieses Themas

    zhd-dresden

    zhd-dresden hat kostenlosen Webspace.

    Vielen Dank für eure Mühen.
    mysql_num_rows ist wirklich nur dann angebrauch, wenn man nicht mal zwischendurch auch wieder Datensätze löschen wil/muss. Da bin ich schon mal damit auf die Nase gefallen.
    Aber dazu gleich noch mal eine nächste Frage,
    wenn ich AUTO_INCREMENT nehme, und ich lösche im Nachhinein Datensätze, zählt er dann weiterhin einen Wert dazu, oder fängts an zu "stottern" wenn zwischendurch eine Zahl fehlt??
  6. michaelkoepke

    michaelkoepke hat kostenlosen Webspace.

    zhd-dresden schrieb:
    ... wenn ich AUTO_INCREMENT nehme, und ich lösche im Nachhinein Datensätze, zählt er dann weiterhin einen Wert dazu, oder fängts an zu "stottern" wenn zwischendurch eine Zahl fehlt??


    Hey,

    wird ein Datensatz gelöscht, wird dieser Indexwert nie wieder gesetzt. Es wird IMMER der nächste Wert genommen. Auch wenn du den letzten Datensatz gelöscht hast ist der neue Index wieder der Nächste Indexwert. Sprich der Indexzähler der Tabelle wird im Datenbanksystem gespeichert.

    Siehe dazu auch:
    http://de.wikipedia.org/wiki/Datenbankindex

    MFG Micha
  7. Autor dieses Themas

    zhd-dresden

    zhd-dresden hat kostenlosen Webspace.

    Vielen Dank für eure Hilfen. Das A/I ist eine super Sache, hab gerade damit rum experimentiert. Klappt genau wie von euch beschrieben. Muss nun allerdings die meine Tabellen (wo gottseidank noch nicht sooo viel drin steht) wieder leeren, denn nur so kann ich das Feld umstellen.
    Ich danke euch wie verrückt, das spart eine Menge Schreibarbeit für die Zukunft.
    Euch allen eine schöne Woche, ihr seid meine Helden.
    Liebe Grüße Frank.:prost:

    PS:
    Jetzt hab ich auch mal einen kleinen Tip.
    Das ID-Feld lässt sich nur dann nicht im Nachhinein in A / I ändern, wenn man selber mit 0 angefangen hat zu zählen. In dem Fall nur das 0te Feld löschen und kann man die Datensätze behalten . :wave:
    Falls es jemanden helfen könnte. :biggrin:

    Beitrag zuletzt geändert: 11.6.2015 17:08:49 von zhd-dresden
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!