Mailinglisten-Archive |
Hallo, ich habe eine Tabelle mit Adressdaten. Ein Feld (folge) ist dafür zuständig, die Adressen in einer bestimmten Reihenfolge auszugeben. Wenn ein Benutzer eine neue Adresse eingibt, kann er die Position der Adresse mit folge bestimmen. Ich möchte nun vermeiden, dass in der Folgenzählung "Löcher" entstehen (1,2,3,6,7,8). Dafür habe ich mir ein Statement ausgedacht, dass leider nicht funktioniert. Vielleicht kann mir jemand das richtig rücken: String sql = "INSERT INTO adressen (owner, ort, str, tel, selected, aktiv, folge) VALUES ('" + return_owner + "', '" + this_ort + "', '" + this_str + "', '" + this_tel + "', 0, 1, IF(MAX(folge)<" + Integer.parseInt(this_folge) + ",'" + this_folge + "',MAX(folge)))"; Die entscheidende Stelle ist wohl " IF(MAX(folge)<" + Integer.parseInt(this_folge) + ",'" + this_folge + "',MAX(folge))". Nehme ich statt dessen ",'" + this_folge + "'" funktioniert das INSERT, aber natürlich nicht die Reihenfolgenbegrenzung. Vielleicht gibt es ja auch eine andere Lösung. Es geht darum, dass der Wert für folge in keinem Fall höher als der Maximalwert von folge + 1 ist. Wenn ich einen Wert für folge angebe, der innerhalb des Wertebereiches liegt, funktioniert mit der vereinfachten Version alles. Die Änderung der schon vorhandenen Zählung habe ich in einer weiteren Abfrage geregelt. Danke für Eure Hilfe Benedikt -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive