Analyse
Wenn wir PHP zum Erstellen von Websites verwenden, ist die Klassifizierung sehr wichtig. Diese zweite Klassifizierung wird jetzt als Unterklassifizierung bezeichnet Die Klassifizierung ist nur in die dritte Kategorie unterteilt:
Erste Kategorie (Elternkategorie)-->Zweite Kategorie (Unterkategorie)-->Dritte Kategorie (Enkelkategorie)
Je mehr solche Verwandtschaftsklassifikationen gibt es, je komplexer und schwieriger es ist, die Klassifizierungsverarbeitung und -steuerung auf derselben Ebene zu steuern, da nur eine Datenbank zum Aufzeichnen dieser Klassifizierungsebene erforderlich ist, z. B. Klassifizierungen wie System und Nachrichten sind auf dieser Ebene sehr einfach zu handhaben, aber für eine Website reicht die Klassifizierung der ersten Ebene nicht aus und muss erneut klassifiziert werden, z. B.:
System -> Linux, Windows
Neuigkeiten-->Linux-Neuigkeiten, Windows-Neuigkeiten
Diese Klassifizierung wird klarer, zumindest werden die Leute verstehen, dass das System Linux und Windows umfasst und die Nachrichten Linux-Neuigkeiten und Windows-Neuigkeiten umfassen Die Informationen sind klarer, daher klassifiziere ich weiterhin:
Linux-->Systemtools, Kernel, Programmiersprache, Entwicklungstools
...
Die Klassifizierung hat die dritte Ebene erreicht , Informationen Die Verarbeitung von Daten wird klarer, das heißt, um die Daten klarer zu verarbeiten, ist die Klassifizierung umso bequemer. Dies erleichtert nicht nur die Verarbeitung von Informationen, sondern macht sie auch für Internetnutzer einfacher Da die Klassifizierung jedoch immer weiter verfeinert wird, wird es immer schwieriger, das Programm und die Datenbank zu kontrollieren.
Schwierigkeit eins: Wie man damit umgeht Verwandte Verwandtschaftsklassifizierungen in der Datenbank?
Schwierigkeit zwei: Wie kann man dies mit PHP erreichen? Die Beziehung?
Diese Art der mehrstufigen und detaillierten Klassifizierung ist ein Problem, das jeder PHP-Programmierer lösen muss , weil das Klassifizierungsproblem bei der Erstellung einer guten und hervorragenden Website unvermeidlich ist und die Lösung dieses Problems ziemlich komplex ist. Das größte Problem ist die Klassifizierungsverarbeitung der Datenbank, denn wenn die Datenbank nicht ordnungsgemäß gehandhabt wird, führt dies zu a enorme Arbeitsbelastung und sogar eine Neuplanung der Datenbank ...
Das ist keine Übertreibung, denn wenn es um die Datenbankverarbeitung geht, verwenden die Leute die Klassifizierungsmethode der ersten Ebene, um eine Datenbank aufzubauen Damals wurde diese Methode auch für die Klassifizierung verwendet. Da die meisten Websites in die dritte Ebene eingeteilt sind, gibt es in der Datenbank jedoch auch Nachteile, wenn eine weitere Klassifizierung erforderlich ist offenbart, denn je weiter unten die Klassifizierung ist, desto mehr werden der Arbeitsaufwand und die Anzahl der Verfahren dramatisch zunehmen Alle, die Windows verwendet haben, wissen, dass der Windows-Ordner ein unendlich hierarchisches Verzeichnis erstellen kann, sodass die Klassifizierung auch bei Linux endlos erfolgt. Die von mir eingeführte Methode ist dieselbe wie dieses Formular.
2. Datenbankplanung
------------------- --------------------------
Ich habe vorhin über die Komplexität der Klassifizierung gesprochen, daher ist die Planung der Datenbank sehr wichtig geworden Schritt, um eine unbegrenzte Klassifizierung zu erreichen.
Ich habe die Datenbankplanung des Forums eingeführt, und die unbegrenzte Klassifizierung ist auch eine Erweiterung dieser Art von Kind -Vater-Beziehung, also die Klassifizierungsdatenbank, wie diese Kind-Vater-Beziehung hergestellt und geklärt werden kann
1) Wie man mit der Informationsspeicherung jeder Kategorie umgeht; Wie man mit den Verwandtschaftsbeziehungen der Klassifizierung umgeht;
Die Datenbankverarbeitung von Verwandtschaftsbeziehungen ähnelt der Datenbankverarbeitung von Foren Klassifizierung:
Felder erstellen:
id(int): wird zum Aufzeichnen der natürlichen Seriennummer jeder Kategorie verwendet
uid(int): wird zum Aufzeichnen der ID-Nummer der übergeordneten Kategorie der Kategorie verwendet
type(char) :Der Name der Kategorie
roue_id(varchar): Affinitätsbaum, verbunden mit der ID von :0:2:10:20: zur Angabe der Abstammung
roue_char(varchar): Affinität Baum, ähnlich wie: system:linux:development Tool: gcc: (Es spielt keine Rolle, ob dieses Feld existiert oder nicht. Um jede Beziehung besser zu verstehen, ist der Zeichenausdruck natürlich direkter als der numerische Ausdruck^o^, aber es ist am besten, dieses Feld hinzuzufügen)
Eine solche unendliche Klassifizierung Die Kategorietabelle wird erstellt. Als Nächstes müssen Sie eine Datenbank zum Speichern von Informationen erstellen. Dies ist am bequemsten, um eine Tabelle zu verarbeiten und abzufragen ist eine Tabelle zum Speichern von Informationen. type_message:
id(int): die Seriennummer der Nachricht;
typeid(int): ID-Nummer der Kategorie; ;
Nachricht (Text): Nachrichteninhalt;
Zeit: Zeitpunkt der Erstellung der Nachricht
Diese beiden Datentabellen können die Aufgabe der unendlichen Klassifizierung abschließen (die Hilfsfelder der beiden Tabellen sind). nicht hinzugefügt, Leser können sie selbst hinzufügen.
Die restlichen Aufgaben werden von PHP erledigt.
3. ----------------------------------- --------------- -----------
Dieser Schritt ist der komplizierteste und mühsamste, um die Funktion der unendlichen Klassifizierung zu implementieren. Schauen wir uns zunächst die Schritte an, die ausgeführt werden müssen.
1) Kategorie-Upload erstellen;
3) Jede Kategorie und die Beziehung zwischen ihnen klar anzeigen;
5) Umgang mit den Bearbeitungs- und Löschfunktionen;
Der schwierigste dieser fünf Schritte ist der fünfte, da das Bearbeiten und Löschen von Kategorien eindimensionale Probleme mit sich bringt.
Im Folgenden werde ich darauf eingehen Beschreiben Sie die Programmsteuerung von PHP einzeln:
1) Kategorie-Upload erstellen
Bevor ich diese Funktion einführe, möchte ich zunächst die Funktion „explodieren“ vorstellen Um eine Zeichenfolge zu zerlegen, spezifische Verwendung, zum Beispiel:
Zerlegen Sie die Zahlen in „0:1:2:3:4“
$val='0:1:2:3 : 4';
$rid=explode(":",$val);
Nach der Verarbeitung durch die Funktion „explodieren“ werden alle Zahlen in $val in das Array $rid zerlegt und benötigt in Anführungszeichen setzen. Geben Sie einfach Folgendes aus: echo '$rid[0],$rid[1],$rid[2]..."; und das war's. Die Funktion explosion( ) spielt eine sehr wichtige Rolle im gesamten Klassifizierungsprozess . Beginnen wir nun mit der Einführung der Programmsteuerung ohne aktuelle Klassifizierung.
Sie können davon ausgehen, dass es eine allgemeine Klassifizierung 0 gibt und alle Klassifizierungen davon abgeleitet sind. Lassen Sie uns nun das erste Klassifizierungssystem festlegen wie es im Datenbankspeicherformat funktioniert:
uid_id |. Linux' unten:
uid |. rout_char 1 | Speicher, jetzt vervollständigen wir den PHP-Code. Dieser ist dem Forum-Code sehr ähnlich. Wir müssen lediglich die Kategorie-ID in UID und die UID der übergeordneten Kategorie in 0 einfügen. Schauen wir uns den Code an:
< showtype';
// Legen Sie die UID der übergeordneten Kategorie fest
if (empty($uid)) $uid=0
//Datenbankspeicher****** ****************** *******************************
if ($func=='save'):
$fields = ""
$values = ""
if ($id!="") {
$fields .= ",id";
$values.=" ,$id";
if ($uid!="") {
$fields .= ",uid";
$values.=",$uid";
if ($type!="") {
$fields .= ",type ";
$values.=",'$type'";
}
if ($route_id=="") {
//Holen Sie sich die route_id von übergeordnete Kategorie
if ($uid!=0) {
$result = mysqlquery( "select * from type where id=$uid");
$route_id=mysql_result($result,0,"route_id ");
} else {
$router_id='0';
}
$fields .= ",route_id";
//Bilden Sie Ihre eigene route_id
$route_id= "$route_id:$id";
$values.=",'$route_id'" ; ) {
$fields .= ",route_char";
$route_char="$ route_char:$type";
$values.=",'$route_char'"; 🎜>$fields .= ",route_char";
$route_char=$type;
$values.=",'$route_char'";
$fields = substr( $fields,1,strlen($fields)-1);
$values = substr( $values,1,strlen($values)-1);
$result = mysqlquery(" in Typ ($fields) Werte ($values) einfügen);
...
endif; /* end save */
//Kategorie-Upload*** *************************** *********************
if ($func=='createtype'):
//Holen Sie sich Ihre eigene ID
$result = mysqlquery("select * from type order by
id desc"
$num=mysql_numrows($result);
if (!empty($num)) {
$cat = mysql_result ($result,0,"id");
} else {
$ cat=0;
}
//Beurteilen Sie den Status der Klassifizierung
if ($uid != 0) {
$result=mysql_query("select * from type where id= $uid");
$type=mysql_result($result,0,"type");
$route_char=mysql_result( $result,0,"route_char");
} else {
$type='parent Category';
}
echo "
创建分类 |
$type |
“; echo "$type"; echo " |
“; for ($i=0;;$i++) { $a=$i+1; echo "href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":"; if (empty($path_gb[$i])) { break; } } echo " |
创建分类 |
$type |
“; echo "$type"; echo " |