Heim php教程 php手册 php 进阶:实现无限分类(3)

php 进阶:实现无限分类(3)

Jun 21, 2016 am 09:10 AM
lt quot route type

3.程序控制
------------------------------------------------------------

实现无限分类这个功能中就属这一步最为复杂辛苦,首先看看程序需要完成的步骤:

1)创建分类上传;
2)创建信息上传;
3)明确显示各分类及其之间的关系;
4)处理查询功能;
5)如何处理编辑和删除的功能;

而这五步中最为困难的就是第五个步骤,因为对分类的编辑和删除涉及到一至性的问题.

下面我就逐一描述 php 的程序控制:

1)创建分类上传

在介绍这个功能前,先介绍一下 explode( ) 这个函数,这是个字串处理函数,用来分解字串的,具体的用法,例:

分解"0:1:2:3:4"里的数字

$val='0:1:2:3:4';
$rid=explode(":",$val);

经过 explode( ) 函数处理,$val 内的所有数字都分解到 $rid 数组中了,要引用时只需打印:echo '$rid[0],$rid[1],$rid[2]..."; 就行了.explode( ) 函数在整个分类处理中起着非常重要的作用,好现在开始介绍无现分类的程序控制.

可以假设个总分类 0 ,所有的分类都是它的子孙分类,现在来建立第一个分类'系统',来看看它在数据库的存储形式:

id | uid | type | rout_id | rout_char
1 | 0 | 系统 | 0:1 | 系统

接着又在下面分'Linux':

id | uid | type | rout_id | rout_char
2 | 1 | Linux| 0:1:2 | 系统:Linux

以上就是数据库存储的形式,现在就来完成 php 的代码,这与论坛的代码很相似,我们所要做的就是将分类的 id 放入 uid,而父分类的 uid 就放 0,下面来看看代码:


.....
.....

//设置默认页
if (empty($func)) $func=='showtype';

//设置父分类的 uid
if (empty($uid)) $uid=0;

//数据库存储************************************************
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=="") {

//取得父分类的 route_id
if ($uid!=0) {
$result = mysqlquery("select * from type where id=$uid");
$route_id=mysql_result($result,0,"route_id");
} else {
$routr_id='0';
}
$fields .= ",route_id";
//形成自己的 route_id
$route_id="$route_id:$id";
$values.=",'$route_id'";
}

//形成自己的 route_char
if ($route_char!="") {
$fields .= ",route_char";
$route_char="$route_char:$type";
$values.=",'$route_char'";
} else {
$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("insert into type ($fields) values ($values)");
...
endif; /* end save */


//分类上传************************************************
if ($func=='createtype'):

//取得自己的 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;
}

//判断分类的状态
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='父分类';
}
echo "

";

echo "";
echo "";
echo "";

echo "";

echo "
所属类别:$type
创建分类:
";
$cat=$cat+1;
echo "";
echo "";
echo "";
echo "
";
echo "
";
endif; /* end createtype */

//显示分类************************************************
if ($func=='showtype'):

echo "";

//判断分类的状态
if ($uid!=0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
} else {
$type='父分类';
}

echo "";

echo "";

$result=mysql_query("select * from type where uid=$uid");
$num=mysql_numrows($result);

if (!empty($num)) {
for ($i=0;$i
$id=mysql_result($result,$i,"id");
$type=mysql_result($result,$i,"type");

echo "";
}
}

echo "
创建分类
$type
";
echo "$type";
echo "
";
endif; /* end showtype */
.....
.....

?>



Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Beheben Sie den Ubuntu-Fehler beim Mounten der mobilen Festplatte: unbekannter Dateisystemtyp exfat Beheben Sie den Ubuntu-Fehler beim Mounten der mobilen Festplatte: unbekannter Dateisystemtyp exfat Jan 05, 2024 pm 01:18 PM

Beim Mounten einer mobilen Festplatte durch Ubuntu tritt ein Fehler auf: mount: unlimitedfilesystemtype'exfat'. Die Verarbeitungsmethode lautet wie folgt: Ubuntu13.10 oder exfat-fuse installieren: sudoapt-getinstallexfat-fuseUbuntu13.04 oder niedriger sudoapt-add-repositoryppa:relan /exfatsudoapt-getupdatesudoapt-getinstallfuse- exfatCentOS Linux Fehler beim Mounten des USB-Datenträgers im Exfat-Format zum Laden von extfa in CentOS

Wozu dient das Type-Schlüsselwort in Go? Wozu dient das Type-Schlüsselwort in Go? Sep 06, 2023 am 09:58 AM

Die Verwendung des Type-Schlüsselworts in Go umfasst das Definieren neuer Typaliase oder das Erstellen neuer Strukturtypen. Detaillierte Einführung: 1. Verwenden Sie das Schlüsselwort „type“, um einen neuen Typ zu erstellen, sondern nur einen neuen Namen für den vorhandenen Typ bereitzustellen Die Lesbarkeit des Codes macht den Code klarer. 2. Verwenden Sie das Schlüsselwort „type“, um einen neuen Strukturtyp zu erstellen, der zum Definieren benutzerdefinierter Typen mit mehreren Feldern verwendet werden kann.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Befehle vom Typ Linux Befehle vom Typ Linux Mar 20, 2024 pm 05:06 PM

In dieser Anleitung erfahren wir mehr über den Befehl „type“ unter Linux. Voraussetzungen: Um die in diesem Handbuch gezeigten Schritte ausführen zu können, benötigen Sie die folgenden Komponenten: Ein ordnungsgemäß konfiguriertes Linux-System. Erfahren Sie, wie Sie eine LinuxVM zu Test- und Lernzwecken erstellen. Grundlegendes Verständnis der Befehlszeilenschnittstelle Der Type-Befehl in Linux unterscheidet sich von anderen Linux-spezifischen Befehlen (z. B. ls, chmod, Shutdown, vi, grep, pwd usw.). Der „type“-Befehl ist integriert Bash-Funktion, die als Argument angezeigt wird. Informationen zum bereitgestellten Befehlstyp. $type Neben Bash sind auch andere Shells (Zsh, Ksh usw.) im Lieferumfang enthalten

Detaillierte Erläuterung der internen und externen Netzwerkkonfigurationsroute der CentOS-Dual-Netzwerkkarte Detaillierte Erläuterung der internen und externen Netzwerkkonfigurationsroute der CentOS-Dual-Netzwerkkarte Jan 07, 2024 am 11:10 AM

Konfiguration mit zwei Netzwerkkarten: Fügen Sie in den Einstellungen der virtuellen Maschine im Nur-Host-Modus eine neue MAC-Adresse hinzu. Kopieren Sie die Netzwerkkarte eth0 bis eth1. Achten Sie darauf, die UUID zu entfernen und die richtige MAC-Adresse zu ändern: BOOTPROTO={static|none|dhcp|bootp}: Um eine statische Adresse zu verwenden, verwenden Sie static oder none DHCP-Server zum Abrufen der Adresse; IPADDR=:IP-Adresse NETMASK=: Subnetzmaske GATEWAY=: Legen Sie das Standard-Gateway fest. Für zwei Netzwerkkarten kann nur eines festgelegt werden

Welche Informationen sind bei der Registrierung eines Deepseek -Kontos erforderlich? Welche Informationen sind bei der Registrierung eines Deepseek -Kontos erforderlich? Mar 12, 2025 pm 02:33 PM

Erforderliche Informationen: 1. E-Mail-Registrierung; Nach erfolgreicher Registrierung müssen Sie normalerweise einige grundlegende persönliche Daten wie Spitzname, Geschlecht, Geburtstag usw. ausfüllen.

Was sind die Prinzipien und die Verwendung der Redis-Typ- und Kodierungskodierung? Was sind die Prinzipien und die Verwendung der Redis-Typ- und Kodierungskodierung? May 29, 2023 pm 04:21 PM

Zusammenfassung Redis ist eine Open-Source-Hochleistungs-Schlüsselwertdatenbank, die in verschiedenen Szenarien weit verbreitet ist. In Redis sind Datentyp (Typ) und Kodierung (Kodierung) sehr wichtige Konzepte. In diesem Blog werden die von Redis unterstützten Datentypen sowie die entsprechenden Codierungsmethoden und zugrunde liegenden Implementierungsprinzipien ausführlich vorgestellt. Um die interne Codierung eines Redis-Schlüssels anzuzeigen, können Sie den Redis-Befehl OBJECTENCODINGkey verwenden. Unter diesen ist der Schlüssel der Schlüsselname, den Sie abfragen möchten. Wenn Sie beispielsweise die interne Kodierung eines Schlüssels namens mykey abfragen möchten, können Sie den folgenden Befehl ausführen: 127.0.0.1:6379>objectencodin

Microsoft führt mit Copilot den Build von Windows 11 23H2 im Release-Preview-Kanal ein Microsoft führt mit Copilot den Build von Windows 11 23H2 im Release-Preview-Kanal ein Sep 28, 2023 pm 07:17 PM

Alle freuen sich auf die heutige Veröffentlichung von Windows 1123H2. Tatsächlich hat Microsoft gerade Updates für die Release-Vorschau veröffentlicht, die dem offiziellen Release-Stadium am nächsten kommt. Bekannt als Build 22631 gibt Microsoft bekannt, dass sie die neue umbenannte Chat-App, Phone Links und Play Together-Widgets einführen, die in den letzten Monaten auf anderen internen Kanälen getestet wurden. „Dieses neue Update wird den gleichen Wartungszweig und die gleiche Codebasis wie Windows 11 Version 22H2 haben und mit allen neu angekündigten Funktionen kumulativ sein, einschließlich Copilot in Windows (Vorschau)“, verspricht Microsoft. Redmond-Beamte weiter

See all articles