MYSQL - Tabellen einträge verbieten

cokie

Mitglied
Ich habe eine ganz simple eintrage funktion.
die user können ihre links eintragen, um sich danach gegenseitig auf die links zu klicken.
nun habe ich einen beispiel link. das problem ist, das manche diesen ab und zu wieder posten. nun möchte ich dieses verbieten eine blacklist.

leider bin ich da noch anfänger, geht da was mit myphpadmin oder kann mir sonst jemand helfen?
links dürfen nur einmal in die tabelle eingetragen werden (unique)
 
Du willst also einen Link nur einmal in der Tabelle stehen haben, richtig?
Dann kannst du einfach die entsprechende Spalte (Link) als UNIQUE definieren - wie du richtig sagtest.
 
Achso, dann würde ich eben noch eine Tabelle machen, z.B.:
SQL:
CREATE TABLE blacklinks
(
  id INTEGER AUTO_INCREMENT,
  link VARCHAR(256) UNIQUE,

  PRIMARY KEY(id)
);
Allerdings müsstest du einen Mechanismus entwerfen, sodass man keine Subdomains oder eine URL mit Orderangaben postet kann, von der eben nur die Hauptdomain in der Blacklist ist.
Such mal nach "URL extrahieren" o.Ä.
 
also mach ich noch ne tabelle, wo die blacklinks drinne sind, nun kann ich wegen Unique die links nicht mehr in die angezeigte tabelle eintragen?
 
Doch, du prüfst zuerst, ob der Link in "blacklinks" existiert, wenn nicht dann versuchst du diesen Link in die Linkliste aufzunehmen.
Falls der Fehler 1062 kommt (doppelter Eintrag in UNIQUE), dann gibst auch eine entsprechende Meldung aus.
SQL:
#Prüfen, ob Link in blacklinks
SELECT id FROM blacklinks WHERE link='$myExtractedDomain';

#Wenn nichts zurückgeliefert (d.h. nicht in blacklinks)
INSERT INTO links (link) VALUES ('$myLink');

#Wenn Error 1062-->Fehlermeldung ausgeben: Link bereits vorhanden

Übrigens gehe ich davon aus, dass du MySQL verwendest.
 
Zurück