php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.03.2006, 00:38  
Gast
 
Beiträge: n/a
Standard [Erledigt] letzte ID und letzte Zeile in einer Tabelle

Hallo,

was ich allgemein wissen möchte:


in der MySQL-Datenbank werden Daten gepeichert deren ID mit auto increment erzeugt werden, suche daher eine Funktion oder einen SQL-Befehl der die letzte ID ausgibt (aber nicht die ganze Tabelle durchsuchen soll ).
ohne mysqli-Erweiterung !!! aber wie mysqli_insert_id für mysql 3.23
bzw. wie
last_insert_id() aber schneller und ohne vorherigen Eintrag !


ich möcht die letzte Zeile aus lesen, ohne die ganze Tabelle durchlaufen zu lassen. ähnlich wie bei fopen das Attribut a !

mysql_unbuffered_query geht nicht mit mysql_data_seek - mich würden Alternativen (Links, Infos) interessieren.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.03.2006, 01:54  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Und warum willst du die von dir genannten Methoden nicht verwenden?
Üblicherweise verwendet man die oder du sortierst absteigend nach der ID und nimmst den 1. Eintrag. Dabei geht dein "ohne die ganze Tabelle durchlaufen zu lassen" aber flöten, denn es muss ja erst sortiert werden.
Das geht aber, wenn das ID Feld als Primärschlüssel deklariert wurde trotzdem üblicherweise sehr fix.
Zergling-new ist offline   Mit Zitat antworten
Alt 04.03.2006, 10:50  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Was genau möchtest du denn tun? Möchtest du die aktuell höchste ID ermitteln oder möchtest du die zuletzt vergebene ID bzw. die nächste zu vergebene ID ermitteln?
xabbuh ist offline   Mit Zitat antworten
Alt 04.03.2006, 11:55  
Gast
 
Beiträge: n/a
Standard

Hallo,

die zuletzt vergebene Id, aber last_insert_id() gibt nur was zurück wenn davor ein INSERT erfolgte.
sicher könnte ich einen Blindeintrag mit INSERT machen, die letzte ID mit last_insert_id() abfragen und dann den Blindeintrag wieder löschen.

Habe ich dazu geschrieben, möchte ich allgemein wissen...

beim auto increment ist die zuletzt vergebenene ID logischerweise immer die Höchste.




  Mit Zitat antworten
Alt 04.03.2006, 12:08  
Gast
 
Beiträge: n/a
Standard

select max(id) from tabelle

Ich hoffe nur, dass du mit dieser ID nicht eine neue ID für ein Insert ermitteln willst, denn das wäre falsch!

Gruß
phpfan
  Mit Zitat antworten
Alt 04.03.2006, 12:14  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von aberchen
beim auto increment ist die zuletzt vergebenene ID logischerweise immer die Höchste.
Das muss nicht unbedingt der Fall sein. Stelle dir einfach einmal vor, dass du vier Einträge in der Datenbank hast. Die zuletzt vergebene ID ist also 4. Wenn du nun aber den zuletzt eingetragenen Datensatz löscht, erhälst du bei einer Abfrage, die dir die höchste ID ermittelt, logischerweise den Wert 3, da der Datensatz mit der ID 4 nicht mehr existiert.
Besser ist es also, mit SHOW TABLE STATUS zu ermitteln, welches der nächste zu vergebene auto_increment-Wert ist. Diesen Wert musst du dann ja nur noch um 1 verringern.
xabbuh ist offline   Mit Zitat antworten
Alt 04.03.2006, 12:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von phpfan
select max(id) from tabelle

Ich hoffe nur, dass du mit dieser ID nicht eine neue ID für ein Insert ermitteln willst, denn das wäre falsch!

Gruß
phpfan
super genau das wollte ich wissen, Danke !
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tabelle mit while nach 4 spalten zur nächsten zeile Supeede PHP Tipps 2008 6 10.05.2008 09:46
Position einer zeile in einer sortierten tabelle bestimmen Drache Datenbanken 9 17.06.2007 10:45
Bestimmte Zeile aus Tabelle auslesen anhand von einer Angabe DerTschmi Datenbanken 6 18.03.2006 17:00
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
Subquery gibt NULL, wenn mehr als eine Zeile in Tabelle tapferesschneiderlein Datenbanken 8 31.07.2005 22:36
[Erledigt] Erste Zeile einer Tabelle wird nicht ausgelesen Datenbanken 11 18.07.2005 02:18
eine zeile in meiner tabelle in der DB löschen GrU3nL!nG Datenbanken 3 13.07.2005 12:57
Zeile einer Tabelle per Mausklick markieren ! Cyberbob_at_tot HTML, Usability und Barrierefreiheit 2 27.06.2005 15:17
Komplette Zeile in eine andere Tabelle kopieren? Cyberbob_at_tot Datenbanken 3 17.06.2005 12:09
Letzte Zeile der Tabelle aus lesen! Blank Datenbanken 10 10.06.2005 16:06
Jede zweite Zeile in einer Tabelle farbig Plague HTML, Usability und Barrierefreiheit 5 21.03.2005 19:10
Über Link einen Zeile aus Tabelle löschen Calli PHP Tipps 2004-2 24 03.12.2004 13:35
jede 2. Zeile aus MySQL Tabelle auslesen PHP Tipps 2004-2 4 09.11.2004 14:25
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php letzte id ermitteln, mysql letzte id ermitteln, php letzte id, http://www.php.de/datenbanken/37801-erledigt-letzte-id-und-letzte-zeile-einer-tabelle.html, mysql höchste id ermitteln, letzte id ermitteln php, sql letzte id ermitteln, php datenbank letzte id, sql höchste id ermitteln, höchste id ermitteln mysql, mysql zuletzt eingetragenen datensatz name erhalten, php letzte datenbank id, zuletzt vergebene id ermitteln mysql, php mysql id des letzten datenbank eintrages, php mysql letzte id ermitteln, letzte zeile in tabelle mysql, letzte zeile einer tabelle sql, sql letzte id, letzte zeile ermitteln sql, php sql id letzter datensatz

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.