Heim  >  Artikel  >  Datenbank  >  Code-Implementierung der unendlichen Klassifizierung in MySQL

Code-Implementierung der unendlichen Klassifizierung in MySQL

不言
不言Original
2018-08-20 16:34:002742Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Code-Implementierung der Infinitus-Klassifizierung in MySQL. Ich hoffe, dass er für Sie hilfreich ist.

Ich habe es auch von anderen Orten gefunden und fand es ziemlich gut, deshalb möchte ich es hier teilen.

Das Bild konnte nicht gepostet werden, es kann nur einfach gelöst werden: News                                                                            0-1

3                                                                                                                                                                                                                                                                                                                                 🎜>Eine Aussage, um es zu schaffen:

SELECT id,name,pid,path,concat(path,'-',id) AS newpath FROM cates ORDER BY newpath

Ergebnis nach Abfrage:

id                                                                                      Nachrichten                                                        China News 1 1 0- 1 0-1-2

4 Beijing News 2 0-1- 2                                                                                                                                                                    5

Es ist ersichtlich, dass die Struktur ist sehr klar. Es nutzt sehr geschickt die Sortierfunktion von mysql. Es verwendet die Funktion concat(), um den aktuellen Pfad mit der aktuellen ID zu verbinden (es gibt einen Alias ​​newpath und sortiert newpath zuerst). Beim Sortieren. , Vergleichen 1, Vergleichen 2, Vergleichen 3... Auf diese Weise werden die Abfrageergebnisse direkt nach Ebene sortiert. Als Nächstes müssen Sie nur die Ausgabe im Vordergrund ausführen, und der „Platzhalter für hierarchische Beziehungen“ kann ebenfalls vorhanden sein Gelöst. 0-1-2-4 von newpath entspricht dem Infinitus-Platzhalter. Bei der Ausgabe müssen Sie die obige Anweisung verwenden, um den Wert jedes Datenelements abzufragen wird zuerst in Arrays und dann in Statistiken unterteilt. Fügen Sie für dieses Array eine Schlüsselanzahl (einen Datensatz) zum Array hinzu und geben Sie die gezählte Anzahl von Arrays in diesen Schlüssel ein.

thinkphp 5.0 zum Beispiel:

$list = CateModel::fild(‘id,name,pid,path,concat(path,’-‘,id)’)->order(‘newpath asc’)->select();
// 上面模型查询方法只是大概意思,可以根据最上面的 mysql 语句,用 tp5 的方式拼出来。
foreach ($list as $k=>v){
$list[$k][‘count’] = count(explode(‘-‘,$v))
}

Diese Zählung ist der Platzhalter für die hierarchische Klassifizierung, dann wird sie in einer Schleife in der Vorlage wiederholt und nach der Schleife mehrmals wiederholt.

<select name=”aa”>
{volist name=”list” id=”vo”}
<option vlaue=”{$vo.id}”>
{php}
for($i=0;$i<$vo[‘count’]*2;$i++){
echo ‘ ’
}
{/php}
{$vo.name}
</option>
{/volist}
</select>

Wirkung:

Nachrichten

China-Nachrichten

                                                                                                                                                                       🎜>

Das obige ist der detaillierte Inhalt vonCode-Implementierung der unendlichen Klassifizierung in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn