actx23a 2019-06-26 20:54 采纳率: 0%
浏览 327
已采纳

php谁帮我看看我的代码是什么意思啊

<?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>

  • 写回答

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里的代码块了。

    不知道我的回答您能否明白,如果您仍有疑问,请给我留言,如果对您有所帮助,请您采纳,谢谢~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥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