mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 17:44 Benutzername: Passwort: Auto-Login

Thema: Zu viele Einträge in Datenbanktabelle verhindern vom 04.07.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Zu viele Einträge in Datenbanktabelle verhindern
Seite: 1, 2  Weiter
Autor Nachricht
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Di 04.07.2006 09:03
Titel

Zu viele Einträge in Datenbanktabelle verhindern

Antworten mit Zitat Zum Seitenanfang

Servus!

Mühsam nährt sich das Eichhörnchen. Aber ich hab auch schon ne Menge gelernt und wühl mich weiter durch mein Datenbank-Projekt. Aber so ganz ohne eure Hilfe gehts dann doch wieder nicht. *zwinker*

Folgendes Problem plagt mich:
Ich hab ein Formular, aus diesem werden die eingetargenen Daten in eine DB-Tabelle eingetragen. Das Formular erstellt eine Namensliste, wobei jeder Name im Formular eine eigene Zeile enthält. Also quasi sagen wir mal 3 Zeilen, und in jeder Zeile stehen 2 Input-felder. Die Anzahl Zeilen kommt aus ner anderen Aktion ist mehr oder weniger fix.

Eingetragen wird halt so das übliche - ne ID, Name und mailadresse und nen Zugehörigkeitsindex. ID und Index werden dabei nicht manuel sondern automatisch gesetzt. Klappt auch alles und wenn das in Der DB gelandet ist, sieht die Tabelle so aus:
Code:

ID   Name   Mail                        Gruppe
1     Tick     tick@disney.com      1
2     Trick    trick@disney.com     1
3     Track   track@disney.com    1


Geht der User nach dem Eintragen per Back-Button seines Browsers wieder auf die Formular-Seite und trägt erneut was ein, werden die neuen einträge aber dummerweise hinten dran gehangen. So dass ich dann letztendlich mehr Leute mit dem Gruppen-Schlüssel 1 habe, als ich eigentlich wollte.

Jemand mich verstanden und ne Idee, wie ich das abfangen kann?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Di 04.07.2006 09:55
Titel

Antworten mit Zitat Zum Seitenanfang

Dafür gibts auf Datenbank-Ebene UNIQUE.

Code:
CREATE TABLE `table` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` text NOT NULL,
  `mail` text NOT NULL,
  `group` int(10) unsigned NOT NULL default '0',
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `mail_group` (`mail`,`group`),
);


Hier darf es extakt einmal die gleiche Kombination aus "mail" und "group" geben.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Di 04.07.2006 10:33
Titel

Antworten mit Zitat Zum Seitenanfang

Aber kann ich das in meinem Fall anwenden? Gruppe ist ein Fremdschlüssel.

Und außer diesem Schlüssel gibts ja nix, was ich in verbindung setzen könnte, um das Unique zu machen. Okay, ich könnte noch den Namen dazusetzen, um zu verhindern, dass der gleiche Name mehrfach in der gleichen Gruppe ist. *Thumbs up!*

Aber das verhindert ja nicht, dass trotz der vorher gesetzten Beschränkung "Zu dieser Gruppe gehören 3 Leute" nochmal drei dazukommen, auf dem von mir oben beschrieben Weg per Back-Button. Hä?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
UNIQLab

Dabei seit: 30.06.2006
Ort: Mooon
Alter: -
Geschlecht: Männlich
Verfasst Di 04.07.2006 15:30
Titel

Antworten mit Zitat Zum Seitenanfang

ich denke mal dein problem sind ganz einfach ausgedrückt, die post-daten.
löschen geht nicht, zumindest ist mir kein weg bekannt.
Insofern könntest du eine weiterleiteung einbauen, die sofort nach dem eintragen aktiv wird.
Die weiterleitung würde dann z.b. wieder auf das Formuler verweisen, oder auf eine site deiner wahl, z.b.: "eintrag erfolgreich ..."
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Di 04.07.2006 15:32
Titel

Antworten mit Zitat Zum Seitenanfang

UNIQLab hat geschrieben:
ich denke mal dein problem sind ganz einfach ausgedrückt, die post-daten.
löschen geht nicht, zumindest ist mir kein weg bekannt.
Insofern könntest du eine weiterleiteung einbauen, die sofort nach dem eintragen aktiv wird.
Die weiterleitung würde dann z.b. wieder auf das Formuler verweisen, oder auf eine site deiner wahl, z.b.: "eintrag erfolgreich ..."


Das passiert ja auch. geht der user aber jetzt per back-Button des Browsers zurück auf das Formular, könnte er ja auf die Idee kommen, da was neues Eintragen zu wollen. Die neuen Einträge würden dann genauso in die Tabelle fliegen. Das sollen sie ja nicht. Wenn er da was einträgt, sollen im grunde die zuletzt gemachten Einträge ersetzt werden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
UNIQLab

Dabei seit: 30.06.2006
Ort: Mooon
Alter: -
Geschlecht: Männlich
Verfasst Di 04.07.2006 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

Das mit der Gruppe, und dessen Sinn, ist mir noch nicht ganz klar. Wäre praktisch wenn du das mal ausführen könntest, was genau du machen möchstest bzw dir vorstellst, auch wenn nur der Vollständigkeit halber.
Wieso löscht du nicht einfach die alten Einträge und ersetzt durch die Neuen?


Zuletzt bearbeitet von UNIQLab am Di 04.07.2006 15:40, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Di 04.07.2006 15:40
Titel

Antworten mit Zitat Zum Seitenanfang

UNIQLab hat geschrieben:

Wieso löscht du nicht einfach die alten Einträge und ersetzt durch die Neuen?


Genau darum gehts ja? Wie stell ich raus, welche Einträge die letzten waren und wie lösch ich diese?

Das mit der Gruppe ist nur ne weitere Information in der tabelle.

//Nachtrag, naja, das löschen bzw. updaten der Informationen ist klar. nur das rausbekommen, der relevanten ist halt etwas tricky, glaub ich. zur Information: es gibt ne Session-Variable, die festlegt, wieviele zeilen (=teilnehmer) es im Formular geben darf.


Zuletzt bearbeitet von Nimroy am Di 04.07.2006 15:43, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
UNIQLab

Dabei seit: 30.06.2006
Ort: Mooon
Alter: -
Geschlecht: Männlich
Verfasst Di 04.07.2006 15:43
Titel

Antworten mit Zitat Zum Seitenanfang

Ich gehe mal davon aus, das mehr als 3 Einträge da sind, ansonsten wäres ja denkbar einfach.
Aber erklär bitte erstmal was du vorhast, ansonsten kann ich dir nicht so recht folgen.
  View user's profile Private Nachricht senden
 
Ähnliche Themen Die Letzten 5 Einträge in SQL
pornografische einträge im gästebuch
PDF Formulare (Einträge speichern)
Wordpress: Einträge auslesen
Bestimmte einträge anzeigen in der DB
[PHP] Aus Textdatei gelesene Einträge sotieren
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.