暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

怎样把MySQL里的数据库打印到网页中?

阿帆fan 2021-05-07
1090

怎样把MySQL里的数据库打印到网页中?

在这里要介绍一个PHP函数mysqli_fetch_assoc()  它的功能是获取数据库的一行值;

演示:请看以下代码:

      $link=mysqli_connect("localhost","root","","stu_info");
    mysqli_set_charset($link,'utf8');
    $sql = "insert into user (id,name,password,sex,hobby,city)values(null,'$name','$password','$sex','$hobbies','$sf')";
    mysqli_query($link,$sql);
    $rel = mysqli_query($link,'select * from user');
    $result = mysqli_fetch_assoc($rel);
    var_dump($result);
    复制

    我在第五行给了数据库一个查询数据表的命令,并且把它赋给了$rel;

    然后,使用 mysqli_fetch_assoc() 函数获取值,并输出;

    为了方便理解,请看下图:


    在前台输入用户名 no1



    var_dump 输出了关联数组


    输出了第一行


    mysqli_fetch_assoc() 函数只会获取第一行的值吗?请往下看:


      $link=mysqli_connect("localhost","root","","stu_info");
      mysqli_set_charset($link,'utf8');
      $sql = "insert into user (id,name,password,sex,hobby,city)values(null,'$name','$password','$sex','$hobbies','$sf')";
      mysqli_query($link,$sql);
      $rel = mysqli_query($link,'select * from user');
      $result = mysqli_fetch_assoc($rel);
      var_dump($result);
      $result = mysqli_fetch_assoc($rel);
      var_dump($result);
      复制


      我把这两行代码写两遍会发生什么?

      会输出两个相同的关联数组吗?


      非常神奇哈,它输出了第二行数据,要是写三遍呢?


      毫无疑问,输出了第三行数据;

      结论:

      mysqli_fetch_assoc() 函数每写一次,就会自动往下读一行;


      所以要想获取数组里的全部数据,我们只需要用一个循环就可以实现了啊!

      由于数据库里的数据条数是动态变化的,我们最好选择while循环来实现


      像这样:

        $rel = mysqli_query($link,'select * from user');
        while($result = mysqli_fetch_assoc($rel) )
        {
        var_dump($result);
        }
        复制

        就可以把数据库全部内容输出了!

        $result = mysqli_fetch_assoc($rel) 语句为什么可以放在while 里面?

            因为mysqli_fetch_assoc() 每次调用将自动返回下一条结果记录,只要mysqli_fetch_assoc($rel)返回值不是false,就会执行输出;如果到达结果集的末尾,则返回False。就像while($a=11){} , 这个循环就会往下执行,而当while($a=false){}就不成立,终止循环;


        当该函数读到末尾时,就会返回false 这条语句就变成了

          while($result = false )
          {
          var_dump($result);
            }
          复制

          所以就终止了循环






          但这样输出出来不太直观!

          如果把一些不必要的动西给去掉就更棒了!

          既然输出的是关联数组,我们不妨用echo($result[索引]) 来实现

          例如 echo($result['id']);就可以输出id的值了 $result['id']和$result['name']之间用 . 连接起来,就可以输出多个值

          记得还要放在表格中!

          像这样:

          echo '<tr>'.'<td>'.$result['id'].'</td>'.'</tr>';

          因为列太多了,所以这一行代码会非常的长!就像下面的第37行代码,一定要认真写,防止漏掉

          表格的头要单独打印,详见下面代码26-33行;

          代码如下:

            <!doctype html>
            <html>
            <head>
            <meta charset="utf-8">
            <title><?php echo('注册页面');?></title>
            </head>


            <body>
            <?php
            $name=$_POST['username'];
            $password=$_POST['password'];
            $sex=$_POST['sex'];
            $hobby=$_POST['hobby'];
            $sf=$_POST['shengfen'];
            $hobbies='';
            foreach($hobby as $a){
            $hobbies=$hobbies.$a;
            }
            $link=mysqli_connect("localhost","root","","stu_info");
            mysqli_set_charset($link,'utf8');
            $sql = "insert into user (id,name,password,sex,hobby,city)values(null,'$name','$password','$sex','$hobbies','$sf')";
            mysqli_query($link,$sql);
            $rel = mysqli_query($link,'select * from user');
            ?>
            <table border=1px>
            <tr>
            <th>id</th>
            <th>name</th>
            <th>password</th>
            <th>sex</th>
            <th>hobby</th>
            <th>city</th>
            </tr>
            <?php
            while($result = mysqli_fetch_assoc($rel) )
            {
            echo '<tr>'.'<td>'.$result['id'].'</td>'.'<td>'.$result['name'].'</td>'.'<td>'.$result['password'].'</td>'.'<td>'.$result['sex'].'</td>'.'<td>'.$result['hobby'].'</td>'.'<td>'.$result['city'].'</td>'.'</tr>';
            }
            ?>
            </table>
            </body>
            </html>
            复制

            第37行代码理解起来可能比较麻烦,我们一步一步来理解

            大概的意思就是输出一个表格 如下:

              <tr>
              <td>$result['id']</td>
              <td>$result['name']</td>
              <td>$result['password']</td>
              <td>$result['sex']</td>
              <td>$result['hobby']</td>
              <td>$result['city']</td>
              </tr>
              复制

              这样就可以看懂了吧;

              因为这个表格是在php代码中,所以肯定不能这样写

              所以可以把所有的<tr></tr><td></td>标签挨个输出;

              看下面:

                  echo '<tr>';
                echo '<td>';
                echo $result['id'];
                echo '</td>';
                echo '<td>';
                echo $result['name'];
                echo '</td>';
                echo '<td>';
                echo $result['password'];
                echo '</td>';
                echo '<td>';
                $result['sex'];
                echo '</td>';
                echo '<td>';
                echo $result['hobby'];
                echo '</td>';
                echo '<td>';
                echo $result['city'];
                echo '</td>';
                echo '</tr>';
                复制

                把代码第37行换成这一段代码也可以输出;

                这样是并不是就非常直观了呢,就是代码多了那么亿点点;


                <table></table>里的PHP代码记得带上<?php ?>

                一定要分清代码的结构!!!

                下图可方便理解:



                这样就可以实现把MySQL数据库打印到网页中了!

                效果图:

                测试太多了,图有点长


                看一下网页中的数据和MySQL数据是否一致:

                对比图:

                一毛一样!成功了!






                @阿帆fan


                点这里给我留言



                点这里进入阿帆的论坛


                文章转载自阿帆fan,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论