每日练习

1.POST,GET

一个页面中有一个表单:可以输入年龄,并进行判断:
如果大于18岁,可以上网吧,
否则不可以!

<?php
$result = "";
$age = "";
if(isset($_POST['age'])){
    $age = $_POST['age'];
if(empty($age)||$age<18){
    $result = "不可以上网";
}else{
    $result = "可以上网了";
}
}
?>

<body>
<form action="" method = "post">
    请输入你的年龄:<input type="number" name="age">
    <button type="submit">提交</button>
    <text style="width:300px"><?php
        echo $result;
    ?></text>
</form>
</body>

2.数据库连接

<?php
const server = "localhost";//主机
const db_username = "root";//你的数据库用户名


$con = mysqli_connect(server, db_username, "","test");//链接数据库

if (!$con) {
    die("can't connect" . mysqli_error($con));//如果链接失败输出错误
}
?>

在页面login.php中显示一个表单,可以输入用户名和密码。在login_save.php页面输出获取的用户名和密码的值。

login.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<?php

?>
<body>
<form action="login_save.php" method = "POST">
    账号:<input type="text" name="user">
    密码:<input type="password" name="psd">
    <button type="submit">登录</button>
  
</form>
</body>

login_save.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<?php
    $username = $_POST['user'];
    $password = $_POST['psd'];

?>
<body>
    <?php echo $username;echo $password;?>
</body>
</html>

写一个页面server.php,在页面中以表格的形式输出至少5个$_SERVER变量中的元素信息,并有每个元素的含义。

多写几行没啥意义,一行了事。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<?php
$var1 = 'HTTP_HOST';
$type1 = '$_SERVER[ \'HTTP_HOST\']';
$arr1 = array($var1,'$_SERVER[ \'' . $var1 . '\']',$_SERVER[$var1],"端口号");


?>
<body>
<table border="1" width="60%" bgcolor="#e9faff" cellpadding="2">
    <tr>
        <td>元素名称</td>
        <td>使用形式</td>
        <td>结果</td>
        <td>含义</td>
    </tr>
    <tr>
        <td><?php  echo $arr1[0];  ?></td>
        <td><?php  echo $arr1[1];  ?></td>
        <td><?php  echo $arr1[2];  ?></td>
        <td><?php  echo $arr1[3];  ?></td>
        
    </tr>
</table>
</body>
</html>

请设计一个表单,该表单可以输入一个4位的整数(代表年份数字)。表单提交后可以判断用户输入的年份是否是一个闰年。如果是闰年,就输出“xxxx年是闰年”,否则就输出“xxxx不是闰年”。(能被4整除,且不能被100整除的闰年)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<?php
$result = "";
$year = $_POST['year'];
if (!empty($year)) {
    if ($year % 4 != 0) {
        $result = "不是闰年";
    }else if($year % 100 !=0){
        $result = "不是闰年";
    }else{
        $result = "是闰年";
    }
}
?>
<body>
<form action="" method="post">
    请输入年份: <input type="number" maxlength="4" name="year">
    <button type="submit">提交</button>
    <?php echo $result;?>
</form>
</body>
</html>

请实现一个简单计算器,前面的输入框和后面的输入框进行运算(注意:下拉列表中的符号包括: + - * / %)
点击“计算”后,可以根据选中的运算符,对两个数进行指定计算,并输出结果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<body>
<?php
$result = 0;
$num1 = 0;
$num2 = 0;
if ($_POST){
    if(!isset($_POST['num1'])&&!isset($_POST['num2'])){
        $result = "请输入正确的参数";
        return;
    }
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    switch ($_POST['type']){
        case 0:

        $result = $num1+$num2;
        break;
        case 1:
            $result = $num1-$num2;
            break;
        case 2:
            $result = $num1*$num2;
            break;
        case 4:
            $result = $num1/$num2;
            break;
    }
}
?>
<form action="" method="post">
    <input type="number"  name="num1">
    <select name="type">
        <option value="0" >+</option>
        <option value="1" >-</option>
        <option value="2" >*</option>
        <option value="3">/</option>
    </select>
    <input type="number"  name="num2">
    <button type="submit">计算</button>
    <?php echo $result;?>
</form>
</body>
</html>

一个小球从空中掉下来,请根据给定的条件,以及相关的自由落体规律,解决如下问题:
a)如果已知小球掉落时的初始高度为1000m,求其触地瞬间的速度;

b)如果已知小球落地瞬间的速度为1000m/s,求其掉落时的初始高度。
附自由落体公式:
自由落体的速度规律为:v=gt,
自由落体的位移规律为:h=g
t*t/2。
其中g是重力加速度,在地球上g≈9.8m/s2;v是速度(米/秒),h高度(米),t是时间(秒)

<?php
    $h = 1000;
    $g = 9.8;
    $t = sqrt($h*2/9.8);
    $v = 9.8*$t;
    echo "a)落地瞬时速度".$v."m/s<br>";
    $v = 1000;
    $t = $v/$g;
    $h = $g*$t*$t/2;
    echo "b)初始高度为".$h."m"
?>

已知某校某年级的一次阶段考试情况是这样的:总人数接近500,总平均分80分,男生平均分79分,女生平均分84.3分。请使用所学知识(循环,穷举算法),求出男生女生各多少人。

php
for($i=450;$i<550;$i++){
    $female = $i/5.3;
    $male = $female*4.3;

    
    if(isInt($female)&&isInt($male)){
        echo '最终结果男生'.$male.'人,女生'.$female.'人<br>';
    }
}

function isInt($n){
    if(floor($n)==$n){
        return true;
    }else{
        return false;
    }
}
echo "算完了";
?>

请使用循环逻辑语法,以及相应的规律提示信息,在网页上输出如下各个图案(其中的行数可以由一个变量$n来控制,以下图案为假设$n = 4的结果。)。

<?php
$row = 7;
$column = 4;
$nulln = 3;
$rowStar = 1;
$nulls = "&nbsp;";
$stars = "*";
for($i=0;$i<4;$i++) {
    if($i>0){
        $rowStar = 2;
    }
    $nullStr = "";
    $str = "";
    for($j=0;$j<$nulln-$i;$j++){
        $nullStr =  $nullStr . $nulls;
    }

    $str = $nullStr.$stars;

    for($k=0;$k<($row-$rowStar-$nulln*2+$i*2);$k++) {
        $str = $str . $nulls;
    }
    if($rowStar>1){
        $str = $str.$stars;
    }
    $str = $str.$nullStr;
    echo $str.'<br>';

}

定义一个函数,该函数可以接收一个数据(即实参)。该函数的功能是判断该数据是否是一个整数或整数字符串。如果是,则返回true,否则返回false
测试用例:1, 1.23, 0, -1, “123”, “1.23”, “-1.23”, “abc”, “”;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<?php
 function isNum($num)
    {
        return is_numeric($num);
    }
if ($_POST) {
    if (isNum($_POST['num'])) {
        echo '是数字';
    } else {
        echo '不是数字';
    }

   
}
?>
<body>
<form action="" method="POST">
    请输入:<input type="text" name="num">
    <button type="submit">提交</button>

</form>
</body>

定义一个函数,该函数能够判断一个数字是否是一个素数(也叫质数),是就返回true,否则就返回false。并利用该函数的功能,输出2-200之间的所有素数。
注:素数就是只能被1和它本身整除的数。——即只有两个可以整除的数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<?php
    getNum();

    function getNum()
    {
        $total = 0;
       for($i =2;$i<201;$i++){
           $count = 0;
            for($j=1;$j<$i;$j++){
                if($i%$j==0){
                    $count++;
                }
            }
            if($count == 1){
                $total++;
                echo "质数为".$i."<br>";
            }

       }
        echo "总质数".$total;
    }
?>
<body>

</body>
  1. 递归

有如下一个数列:1, 2, 3, 5, 8, 13, 21,....... 其规则是:前两个已知(即1和2),从第3个开始,其值为其左边两个值的和(此数列称为斐波那契数列)。定义一个函数,该函数可以求出该数列的任意第n个数的值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<?php
    getNum(8);

    function getNum($n)
    {
        $arr = array(1,2,);
        for($i=2;$i<$n;$i++){
            $arr[$i] = $arr[$i-1] + $arr[$i-2];
        }
        echo $arr[$n-1];
    }
?>
<body>

</body>
  1. 逻辑运算符

定义一个函数,该函数可以求两个正数的最小公倍数。——倍数就是能被一个数整除的数,最小公倍数就是能同时被这两个数整除的最小的那个。比如6和8的最小公倍数是24,15和20的最小公倍数是60。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<?php
getNum(24,26);

function getNum($n, $m)
{
    if ($n > $m) {
        $max = $n;
        $min = $m;
    } else {
        $max = $m;
        $min = $n;
    }
    $a = 0;
    for($i = 1;$i<$min+1;$i++){
        if($max%$i==0&&$min%$i==0){
            $a = $i;
            
        }
    }
    
    echo $n/$a*$m;
}

?>
<body>

</body>

  1. 递归使用

计算5的阶层;
分析:
数学上阶乘可以这样来描述:一个数n的阶乘,是n-1的阶乘,乘以n的结果!
假设,我们有一个函数 jieceng(),它可以计算任意正整数n的阶乘,类似这样:
$n = 5; //或等于10, 13,等等都无所谓。
$result = jiecheng($n);

<?php
$result = jiecheng(5);
echo $result;

function jiecheng($n)
{
  if($n<2){
    return 1;
  }
    return jiecheng($n -1)*$n;
}

?>

15.随机数

写一个函数,可以随机输出10-25之间的6个不重复的整数——取得随机数函数为rand();

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>

<?php
$result = getRand();


function getRand()
{
    $arr = array();
    $count = 0;
    while($count<6){
        $a = rand(10,25);
        echo $a.'<br>';
        if(!hasA($a,$arr)){
            $arr[$count] = $a;
            $count++;
        }
    }
    echo $arr;
    return $arr;
}

function hasA($a,$arr){

    $len = sizeof($arr);
    if($len==0){
        return false;
    }
    for($i=0;$i<$len;$i++){
        if($a == $arr[$i]){
            return true;
        }
    }
    return false;
}
?>
<body>

</body>
</html>
  1. 二位数组

某旅游团有来自多个省市的旅客,每个省市分做一个小组,每个小组的人数和年龄都有所不同,如下所示:
北京市3人:25岁,28岁,23岁
河北省5人:22岁,23岁,30岁,25岁,20岁
山东省4人:25岁,32岁,33岁,20岁
请设计适当的数据类型以保存这些年龄数据,并求出整个旅游团的整体平均年龄。

<?php
$arr = Array(
  '北京市' => Array(25,28,23),
  '河北省' => Array(22,23,30,25,20),
  '山东省' => Array(25,32,33,20)
);

$up = 0;
$down = 0;
foreach($arr as $value){
    $down += sizeof($value);
     foreach ($value as $v){
        $up += $v; 
     }
}
echo $up/$down;
  1. 数组合并打乱

请设计一个登录页面,包括用户名、密码和验证码3个输入框。验证码框右边显示验证码文字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<?php

    $result = "";
    $range1 = range('0','9');
    $range2 = range('a','z');
    $range3 = range('A','Z');
    $arr = array_merge($range1,$range2,$range3);
    shuffle($arr);
    $result = $arr[0]. $arr[1]. $arr[2]. $arr[3];
?>

<body>
<form action="" method = "GET">
    用户名:<input type="text" name="user"><br>
    密码:<input type="password" name="psd"><br>
    验证码:<input type="text" name="num"><?php echo $result?><br>
    <button type="submit">登录</button>
    
</form>
</body>

  1. 数组排序

以下数据为某班的某次考试成绩,请使用任意一种排序算法对其进行排序后,按从高到低的顺序输出。
$score = [82, 88, 67, 71, 92, 66, 78, 83, 85, 75, 76, 63, 55, 68, 71, 88, 90];

<?php
$score = [82, 88, 67, 71, 92, 66, 78, 83, 85, 75, 76, 63, 55, 68, 71, 88, 90];
asort($score);
var_dump($score);
echo '<br>';
arsort($score);
var_dump($score);

19.sql训练

第1题:
题型:实操题
难度:1级
题干: 合肥创仁元有限制公司信息部门准备做一个企业内部新闻管理系统,假如由你来负责这个项目.请在命令行下创建一个数据库db_news,并选择使用之.

<?php
//(1)数据库配置信息
$db_host = "localhost"; //主机名  localhost:3306
$db_port = "3306";      //端口号
$db_user = "root";      //用户名
$db_pass = "";      //密码
$db_name = "db_news";   //数据库名
$charset = "utf8";      //字符集

//(2)PHP连接MySQL服务器
if(!$link = @mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
{
    echo "<h2>PHP连接MySQL服务器失败!</h2>";
    echo "系统错误信息:".mysqli_connect_error();
    die(); //中止程序向下运行
}
$sql = "CREATE DATABASE ".$db_name;

//(3)创建数据库
if($link->query($sql)==true){
    echo "Database created";
}else{
    echo "Error creating database: " .$link->error;
    die();//中止程序向下运行
}

//(3)选中数据库
if(!mysqli_select_db($link,$db_name))
{
    echo "<h2>选择数据库{$db_name}失败!</h2>";
    die();
}else{
    echo "<h2>选择数据库{$db_name}成功!</h2>";
}

//(4)设置数据库返回数据字符集
mysqli_set_charset($link,$charset);

//(5)关闭连接
$link->close();

第2题:
题型:实操题

难度:2级
题干:陕西康鑫绿色食品有限公司,市场销售部,准备开发一个在线产品销售管理系统 ,通过需求分析,设计数据库名及表名,如下参数: 数据库名为db_goods,商品表tb_goods,商品表字段分别为,商品编号(id),名称(name),型号(type),产地(address),价格(price).商品编号自动增长并为主键.

<?php
//(1)数据库配置信息
$db_host = "localhost"; //主机名  localhost:3306
$db_port = "3306";      //端口号
$db_user = "root";      //用户名
$db_pass = "";      //密码
$db_name = "db_goods";  //数据库名
$tb_name = "tb_goods";  //表
$charset = "utf8";      //字符集

//(2)PHP连接MySQL服务器
if(!$link = @mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
{
    echo "<h2>PHP连接MySQL服务器失败!</h2>";
    echo "系统错误信息:".mysqli_connect_error();
    die(); //中止程序向下运行
}
$sql_cb = "CREATE DATABASE ".$db_name;


//(3)选中数据库
if(!mysqli_select_db($link,$db_name))
{
    echo "<h2>选择数据库{$db_name}失败!</h2>";
    //(4)创建数据库
    if($link->query($sql_cb)==true){
        echo "Database created";
    }else{
        echo "Error creating database: " .$link->error;
        die();//中止程序向下运行
    }

}else{
    echo "<h2>选择数据库{$db_name}成功!</h2>";
}

//(4)设置数据库返回数据字符集
mysqli_set_charset($link,$charset);

//(5)创建表
$sql_ctable = "CREATE TABLE ".$tb_name."(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
name VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
address VARCHAR(50),
price FLOAT
)";


if(mysqli_num_rows(mysqli_query($link,"SHOW TABLES LIKE '". $tb_name."'"))==1) {
    echo "Table exists";
} else {
    echo "Table does not exist";
    if($link->query($sql_ctable)==true){
        echo "table created";
    }else{
        echo "Error creating table: " .$link->error;
        die();//中止程序向下运行
    }
}


//(5)关闭连接
$link->close();

第3题:
题型:实操题
难度:2级
题干: 开发一个就业学生管理系统,来统计哪些专业相对容易就业.初步设计数据库及表如下: 数据库名job_db_student,表名job_tb_student。字段:学生编号,姓名,性别,年龄,在校所学专业及毕业时间。表创建好的之后,要求再增加两个字段,一是专业后增加联系方式,二是毕业时间后面增加一个籍贯.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容