2011-01-13 3 views
3

Ich überweise Tags in eine DB wie Tag1, Tag2, Tag3. Wie würde ich sie teilen, damit ich sie in Links eingliedern und dann die Datenbank nach anderen Einreichungen abfragen kann, die diese Tags verwenden?PHP und Tags in einem DB

+0

verwenden Sie MySQL-Datenbank? Was ist die ursprüngliche Eingabe, die Sie teilen möchten? – amosrivera

+0

Ja, MySQL. Im Moment werden die Daten über ein Textfeld im Format Tag1, Tag2, Tag3 – NikkiW

Antwort

4

Sie sollten die Tags wahrscheinlich in einer separaten Tabelle speichern und sie mit dem Datensatz verknüpfen, indem Sie ein Feld verwenden, das die ID des Datensatzes enthält.

Die meisten Beziehungen zwischen eins und vielen innerhalb einer Datenbank erfordern separate Tabellen. Kommagetrennte Werte gehen gegen das, was Datenbanken so groß macht.

1

Ich bin nicht sehr sicher zu verstehen, aber wenn Sie Ihre Tag-Zeichenfolge analysieren möchten, können Sie verwenden:

<?php 
    str=" tag1, tag2, tag3 "; 
    $array = explode(', ', trim(str)); 
?> 

Sie werden normalerweise in der ein Array mit dem 3-Tag bekommen.

Aber Sie sollten Tag eins nach dem anderen in einer anderen Tabelle eine Referenz auf ihnen einfügen.

+1

Geringfügigkeit eingereicht, aber Sie sollten nach der Explosion trimmen, nicht nach dem Trimmen explodieren. Es kann eine beliebige Anzahl von Leerzeichen vor/nach Kommas geben. Ich benutze 'array_map ('trim', explode (',', strtolower ($ str))) – kijin

+0

Stimmt, das ist schlau, danke :) –

0

Ein sehr einfacher, aber sehr hackey Ansatz wäre, Ihre Tags mit Anfang und Ende Kommas so ,tag1,tag2,tag3,tag4, einzugeben, weil Sie dann tag2 durch Abfrage für where tag LIKE '%,tag2,%' erhalten können. Granged ist langsam und es gibt viel erweiterte Möglichkeiten, dies über 1 zu tun : viele Beziehungen. Wenn Sie Tags zu Links machen wollen, würde ich in eine Struktur schauen, in der 1 Tabelle Posts hat und eine Tabelle Tags hat. http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html hat ein paar Tabellenstrukturen und Erklärungen, wie das funktioniert.