<?php
$mysqli =mysqli_connect("localhost","root","","testdb1" );
$display_block ="<h1>my categories</h1><p>select a category to see its items.</p>";
$get_cats_sql="select id,cat_title,cat_desc from store_categories order by cat_title";
$get_cats_res=mysqli_query($mysqli,$get_cats_sql);
if(mysqli_num_rows($get_cats_res) < 1){
$display_block = "<p>sorry</p>";
}else{
while($cats = mysqli_fetch_array($get_cats_res)){
$cat_id = $cats['id'];
$cat_title=strtoupper(stripslashes($cats['cat_title']));
$cat_desc = stripslashes($cats['cat_desc']);
$display_block .= "<p><strong><a href=\"".$_SERVER['PHP_SELF']."?cat_id=".$cat_id."\">".$cat_title."</a></strong><br/>".$cat_desc."</p>";
if(isset($_GET['cat_id'])&&($_GET['cat_id']==$cat_id)){
$safe_cat_id=mysqli_real_escape_string($mysqli,$_GET['cat_id']);
$get_items_sql = "select id,item_title,item_price from store_items where cat_id '".$cat_id."' order by item_title";
$get_items_res = mysqli_query($mysqli,$get_items_sql);
if(mysqli_num_rows($get_items_res)< 1){
$display_block = "<p>sorry</p>";
}else{
$display_block .="<ul>";
while($items = mysqli_fetch_array($get_items_res)){
$item_id = $items['id'];
$item_title= stripslashes($items['item_title']);
$item_price = $items['item_price'];
$display_block.="<li><a href=\"showitem.php?item_id".$_items_id."\"</a>(\$".$item_price.")</li>";
}
$display_block .="</ul>";
}
}
}
}
mysqli_close($mysqli);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php echo $display_block; ?>
</body>
</html>
php谁帮我看看我的代码是什么意思啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- catfishlyf 2019-06-27 10:14关注
您好,我给您的代码加上了注释。
<?php $mysqli =mysqli_connect("localhost","root","","testdb1" ); //连接数据库 $display_block ="<h1>my categories</h1><p>select a category to see its items.</p>";//页面显示的内容,提示用户选择一个类型去查看详细信息 $get_cats_sql="select id,cat_title,cat_desc from store_categories order by cat_title";//定义sql语句,从store_categories表中查询id,cat_title,cat_desc,并按照cat_title排序 $get_cats_res=mysqli_query($mysqli,$get_cats_sql);//执行sql语句,若执行成功将返回一个 mysqli_result对象 if(mysqli_num_rows($get_cats_res) < 1){//mysqli_num_rows()函数返回结果集中行的数量,若小于1则sql执行失败,提示用户“sorry”,否则显示详细信息 $display_block = "<p>sorry</p>"; }else{ while($cats = mysqli_fetch_array($get_cats_res)){//循环遍历结果集 mysqli_fetch_array()函数从结果集中取得一行作为关联数组 $cat_id = $cats['id']; $cat_title=strtoupper(stripslashes($cats['cat_title']));//stripslashes()函数删除由 addslashes()函数添加的反斜杠。strtoupper() 函数把字符串转换为大写。 $cat_desc = stripslashes($cats['cat_desc']); //显示数据信息<a>标签里放的是链接的信息,格式为:地址?参数名称=参数值 $display_block .= "<p><strong><a href=\"".$_SERVER['PHP_SELF']."?cat_id=".$cat_id."\">".$cat_title."</a></strong><br/>".$cat_desc."</p>";//$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名。 if(isset($_GET['cat_id'])&&($_GET['cat_id']==$cat_id)){//isset()检测变量是否已设置并且非 NULL,该条语句的意思是判断,你在url中获取的cat_id是否和当前遍历到的cat_id相等 $safe_cat_id=mysqli_real_escape_string($mysqli,$_GET['cat_id']);//mysqli_real_escape_string()函数转义在 SQL 语句中使用的字符串中的特殊字符。第一个参数为数据库连接,第二个参数为需要转义的字符。 $get_items_sql = "select id,item_title,item_price from store_items where cat_id '".$cat_id."' order by item_title";//定义sql,查询某个cat_id的信息 $get_items_res = mysqli_query($mysqli,$get_items_sql);//执行查询语句 if(mysqli_num_rows($get_items_res)< 1){//同上,<1时说明查询失败 $display_block = "<p>sorry</p>"; }else{ $display_block .="<ul>"; while($items = mysqli_fetch_array($get_items_res)){//遍历查询结果 $item_id = $items['id']; $item_title= stripslashes($items['item_title']); $item_price = $items['item_price']; $display_block.="<li><a href=\"showitem.php?item_id".$_items_id."\"</a>(\$".$item_price.")</li>";//显示具体信息 } $display_block .="</ul>"; } } } } mysqli_close($mysqli);//关闭先前打开的数据库连接 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <?php echo $display_block; ?> </body> </html>
代码中的$_GET['cat_id']实际上是您自己点击【$cat_desc】显示的数据时触发的,在页面点击时会刷新本页面,并通过url传递cat_id参数,所以,需要$_GET['cat_id']来获取传递过来的参数,不点击时,参数为空,就是if判断的那条语句,通过isset方法会进行判空操作,执行结果为false,就不执行if里的代码块了。
不知道我的回答您能否明白,如果您仍有疑问,请给我留言,如果对您有所帮助,请您采纳,谢谢~~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog