php 进阶:实现无限分类(3)
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 "
endif; /* end createtype */
//显示分类************************************************
if ($func=='showtype'):
echo "
创建分类 |
$type |
"; echo "$type"; echo " |
endif; /* end showtype */
.....
.....
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Une erreur se produit lorsque Ubuntu monte un disque dur mobile : mount: unknownfilesystemtype'exfat' La méthode de traitement est la suivante : Ubuntu13.10 ou installez exfat-fuse : sudoapt-getinstallexfat-fuseUbuntu13.04 ou version antérieure sudoapt-add-repositoryppa:relan. /exfatsudoapt-getupdatesudoapt-getinstallfuse- exfatCentOS Linux montage solution d'erreur de disque USB au format exfat pour charger extfa dans CentOS

L'utilisation du mot-clé Type dans Go inclut la définition de nouveaux alias de type ou la création de nouveaux types de structure. Introduction détaillée : 1. Alias de type. Utilisez le mot-clé "type" pour créer un alias pour un type existant. Cet alias ne crée pas un nouveau type, mais fournit uniquement un nouveau nom pour le type existant. Les alias de type peuvent améliorer le code. la lisibilité du code rend le code plus clair ; 2. Type de structure Utilisez le mot-clé "type" pour créer un nouveau type de structure qui peut être utilisé pour définir des types personnalisés contenant plusieurs champs, etc.

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

Dans ce guide, nous en apprendrons plus sur la commande « type » sous Linux. Conditions préalables : Pour effectuer les étapes illustrées dans ce guide, vous avez besoin des composants suivants : Un système Linux correctement configuré. Découvrez comment créer une LinuxVM à des fins de test et d'apprentissage. Compréhension de base de l'interface de ligne de commande La commande Type sous Linux est différente des autres commandes spécifiques à Linux (par exemple : ls, chmod, shutdown, vi, grep, pwd, etc.). Fonction Bash affichée en tant qu'argument. Informations sur le type de commande fourni. $type En plus de Bash, d'autres shells (Zsh, Ksh, etc.) sont également livrés avec

Configuration double carte réseau : Ajoutez une carte réseau dans les paramètres de la machine virtuelle en mode hôte uniquement. Après redémarrage, générez une nouvelle adresse MAC dans /etc/udev/rules.d/70-persistent-net.rule. eth0 vers eth1. Attention à le supprimer UUID et à modifier la bonne adresse MAC, modifiez le fichier de configuration : BOOTPROTO={static|none|dhcp|bootp} : Pour utiliser une adresse statique, utilisez static ou none ; Serveur DHCP pour obtenir l'adresse ; IPADDR=:adresse IP NETMASK= : masque de sous-réseau GATEWAY= : définir la passerelle par défaut, une seule peut être définie pour deux cartes réseau ;

Résumé Redis est une base de données clé-valeur open source hautes performances largement utilisée dans divers scénarios. Dans Redis, le type de données (type) et l'encodage (encoding) sont des concepts très importants. Ce blog présentera en détail les types de données pris en charge par Redis ainsi que les méthodes de codage correspondantes et les principes de mise en œuvre sous-jacents. Pour afficher l'encodage interne d'une clé Redis, vous pouvez utiliser la commande Redis OBJECTENCODINGkey. Parmi eux, key est le nom de clé que vous souhaitez interroger. Par exemple, si vous souhaitez interroger l'encodage interne d'une clé nommée mykey, vous pouvez exécuter la commande suivante : 127.0.0.1:6379>objectencodin

Tout le monde attend avec impatience la version actuelle de Windows 1123H2. En fait, Microsoft vient de lancer des mises à jour de l'aperçu de la version, qui est le canal le plus proche avant la phase de sortie officielle. Connu sous le nom de Build 22631, Microsoft annonce le déploiement de la nouvelle application de chat renommée, des widgets Phone Links et Play Together qui ont été testés sur d'autres canaux internes au cours des derniers mois. "Cette nouvelle mise à jour aura la même branche de maintenance et la même base de code que Windows 11 version 22H2 et sera cumulative avec toutes les fonctionnalités nouvellement annoncées, y compris Copilot dans Windows (aperçu)", promet Microsoft. Les responsables de Redmond plus loin

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求
