tabelle mit autoindex und keine doppelte werte
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auto
boxen
code
datenbank
eingabe
erstellen
folgende kriterien
index
kriterium
not
null
spalte
spalten
speichern
struktur
tabelle
test
text
typ
zahl
-
hallo zusammen
wie kann ich eine tabelle erstellen welche folgende kriterien erfüllt
spalten kriterien
---------------------
spalte1 = autoindexzahl
spalte2 = text (nicht doppelte)
spalte3 = zahl
inhaltbeispiel:
1 hallo 12
2 hallo 44 (kann nicht gespeichert werden, da hallo bereits exisitert)
2 juhu 543
wie kann man so eine tabelle erstellen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich nehme mal an, du meinst eine mysql-Datenbanktabelle?
In PhpMyAdmin gehst legst du in deiner Datenbank eine neue Tabelle an.
- Für die 3 Spalten vergibst du jeweils einen Namen.
- Für jede Spalte gibst du den Typ an:
-> Für den Index 'int'
-> Für einen langen Text 'Text', für einen kurzen am besten 'varchar' sowie eine maximale Zeichenlänge
-> Für eine natürliche Zahl 'int', für eine Dezimalzahl 'Float' oder 'Decimal'
- Beim Index checkst du die Box unter 'A_I' (Auto Increment)
- Überall, wo du eingaben erzwingen willst achtest du darauf, dass kein Harken bei 'NULL' gesetzt ist
Nach dem klicken auf speichern wird die der Reiter 'Struktur' angezeigt. Beim Text klickst du auf 'Unique' um doppelte Werte zu unterbinden. Bei dem Index kannst du das auch machen, sollte aber unnötig sein, da die Eingabe ohnehin durch das Auto Increment geregelt wird. -
CREATE TABLE test ( spalte1 INT (25) UNSIGNED NOT NULL AUTO_INCREMENT, spalte2 VARCHAR (250) NOT NULL DEFAULT '', spalte3 TINYINT (2) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (spalte1), UNIQUE (spalte2) )ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Wichtig hier ist das UNIQUE, das sagt, das diese Spalte keine doppelten Einträge haben darf.
-
Hallo
um das "keine doppelte werte" zu erreichen,
kann man folgendes machen: vor dem INSERT eine Abfrage, ob Wert schon in Tabelle / Spalte
$mysqli->query("SELECT count(*) FROM test WHERE spalte1 = '$testwert' ");
Wenn das Ergebnis Größer 0 (Null) ist, dann ist der Eintrag schon vorhanden (doppelt)
oder
mit ADD UNIQUE INDEX beim Erstellen (CREATE) und mit IGNORE beim Speichern (INSERT)
:=)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage