php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen
Alt 23.04.2010, 23:41  
Erfahrener Benutzer
 
Registriert seit: 07.11.2008
Beiträge: 158
PHP-Kenntnisse:
Fortgeschritten
robat befindet sich auf einem aufstrebenden Ast
Standard Letzten Eintrag löschen (größte ID)

Hallo Leute,

ich hab es hinbekommen, den letzten Eintrag zu löschen, also den Eintrag mit der höchsten ID in der Tabelle:

PHP-Code:

if($produkt_eingabe == "-" or $produkt_eingabe == "302rueckgaengig")
{
    
$hole_letzten_eintrag "SELECT MAX(id) AS letzteid FROM essen_buchung";
    
$hole_letzten_eintrag_erg mysql_query($hole_letzten_eintrag);    
    if(
mysql_num_rows($hole_letzten_eintrag_erg) > 0)
    {    
        
$hole_letzten_eintrag_arr mysql_fetch_object($hole_letzten_eintrag_erg);    
        
$loesche_letzten_eintrag "DELETE FROM essen_buchung WHERE id='".$hole_letzten_eintrag_arr->letzteid."'";        
        
mysql_query($loesche_letzten_eintrag);
    }

Ich wollte nur nochmal Fragen, ob es da auch einen einfacheren Weg gibt.

PHP-Code:
DELETE FROM essen_buchung WHERE id=MAX(id
hat leider nicht funktioniert. Wär auch zu komfortabel gewesen

Vielleicht wisst ihr ja noch was.

Es geht halt, aber für das Script und für zukünftige wäre es interessant zu wissen, ob man das auch kürzer halten kann

Danke!

Gruß

robat
robat ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.04.2010, 23:44  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.281
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

In einer Client-Server-Umgebung mit mehreren Nutzern ist dieses Prinzip Unsinn. IDs sind zudem auch kein gescheites Sortierkriterium.
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 23.04.2010, 23:46  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 819
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
DELETE FROM essen_buchung WHERE id=(SELECT MAX(idFROM essen_buchung
Die Lösung ist ein Sub-Select.
Aber wie mein Vorredner gesagt hat, würde ich davon ebenfalls abraten
Paul.Schramenko ist offline  
Alt 24.04.2010, 00:10  
Erfahrener Benutzer
 
Registriert seit: 07.11.2008
Beiträge: 158
PHP-Kenntnisse:
Fortgeschritten
robat befindet sich auf einem aufstrebenden Ast
Standard

Naja es ist im Prinzip so aufgebaut:

Die Tabelle essen_buchung ist leer.
Dann wird nacheinander jeweils ein Essen gebucht. Die ID wird automatisch um 1 erhöht per auto_increment.
Das letzte Essen, dass eingetragen wurde hat also die höchste ID.
Und da ja nur per Script eingetragen werden kann, ist das doch eigentlich sehr sicher, dass da der letzte genommen wird?

Dein SubSelect bekommt folgenden Fehler:
You can't specify target table 'essen_buchung' for update in FROM clause

Gruß

robat

Geändert von robat (24.04.2010 um 00:13 Uhr).
robat ist offline  
Alt 24.04.2010, 00:24  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 819
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

OK dann befürchte ich musst 2abfragen machen, ist aber schon spät und ich habs auch net ausprobiert
Paul.Schramenko ist offline  
Alt 24.04.2010, 01:56  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.281
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

Bei 2 Abfragen passt immer ein Insert dazwischen.
Zitat:
Und da ja nur per Script eingetragen werden kann
Client-Server-Kommunikation erlaubt beliebig viele Aufrufe desselben Scripts zur selben Zeit. Die ANtwort ist darum nein.
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 24.04.2010, 02:10  
Erfahrener Benutzer
 
Registriert seit: 20.01.2010
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
feeela befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von robat Beitrag anzeigen
Dein SubSelect bekommt folgenden Fehler:
You can't specify target table 'essen_buchung' for update in FROM clause
Mal abgesehen von dem was nikosch schrieb (dringend beachten!), müsste sich das Problem doch durch Tabellenaliase umgehen lassen!?
__________________
Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - Karlheinz Deschner
feeela ist offline  
Alt 24.04.2010, 10:37  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Was ist an ORDER BY id DESC LIMIT 1 auszusetzen?
cetalian ist offline  
Alt 24.04.2010, 10:46  
Erfahrener Benutzer
 
Registriert seit: 07.11.2008
Beiträge: 158
PHP-Kenntnisse:
Fortgeschritten
robat befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Bei 2 Abfragen passt immer ein Insert dazwischen.
Client-Server-Kommunikation erlaubt beliebig viele Aufrufe desselben Scripts zur selben Zeit. Die ANtwort ist darum nein.
Ich verstehe was du meinst, aber das geht bei diesem hier nicht, da es per Login-System geschützt ist und immer nur ein Benutzer gleichzeitig angemeldet sein kann.

Meldet sich die Kasse woanders an, wird die andere automatisch ausgeloggt.

Gruß

robat

Geändert von robat (24.04.2010 um 11:05 Uhr).
robat ist offline  
Alt 24.04.2010, 17:39  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.468
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von cetalian Beitrag anzeigen
Was ist an ORDER BY id DESC LIMIT 1 auszusetzen?
Sortierung nach ID ist ein Designfehler.

Die Aufgabe einer ID ist einzig und allein die eindeutige Identifikation eines Datensatzes.
Sie zur Sortierung o.ä. heranzuziehen, ist ein Missbrauch.

Wenn du eine Sortierung herstellen willst, dann definiere dafür ein Sortierkriterium, das von der ID unabhängig ist.
ChrisB ist offline  
 


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Eintrag per Klick löschen?! Apfelbaum PHP Tipps 2010 2 13.02.2010 01:50
[Erledigt] Eintrag automatisch löschen Bernd-m Datenbanken 10 21.08.2009 18:11
letzten Datenbank Eintrag löschen parafi Datenbanken 7 17.01.2009 23:45
Eintrag in Datenbank mit Button löschen haufe PHP Tipps 2009 29 08.01.2009 20:18
XML - Eintrag löschen PHP Tipps 2006 9 23.04.2006 14:55
Eintrag löschen PHP Tipps 2006 38 25.02.2006 18:10
Eintrag löschen wenn Seite geschlossen wird krummzahn PHP Tipps 2007 7 06.12.2005 21:29
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] array prüfen un ggf eintrag löschen PHP Tipps 2005-2 10 13.10.2005 08:02
Datensätze löschen für die kein Eintrag in anderer Tabelle.. robo47 Datenbanken 7 10.11.2004 09:42
Eintrag löschen und Seite refreshen Paulo PHP Tipps 2004 1 22.10.2004 15:50
Eintrag aus Textdatei löschen? PHP Tipps 2004 1 04.09.2004 18:21
wo ist der Fehler? Eintrag aus Datenbank löschen Ente PHP Tipps 2004 2 24.08.2004 15:04
letzen Eintrag finden und löschen! Boennchen Datenbanken 7 17.07.2004 10:28
letzten Eintrag finden bzw. löschen!! Boennchen PHP Tipps 2004 3 16.07.2004 11:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php select größte id, php größte id, sql letzten datensatz löschen, letzte sucheintraege loeschen, php grösste id, max(id) delete, datensatz mit grösster id php, delete bis auf die letzten, sql alle bis auf höchste id löschen, letzter datensatz löschen sql, zwei datensätze mit größter id löschen sql, php höchste id löschen, php höchste id 1, letzten datensatz sql löschen, sql datensatz mit der größten id löschen, höchste id microsoft sql, einträge mit höchster id löschen sql, sql eintrag mit höchster id löschen, letzte eintragung löschen, letzte element löschen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:25 Uhr.




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