Php实现页面传值$_GET的例子

 更新时间:2016年11月25日 14:59  点击:2182
本文章介绍从url带参数传值与在表单中传值的获取方法,希望本文章对各位同学会带来帮助。

例子、单表单内容发送和接收

我们都是如果要实现内容发送或者接收我们首先都需要一个表单也就是form标签 下面这个是前端的html代码

 代码如下 复制代码

<form  action="1.php">
<p>Get 发送方式:
<input type="text" name="wz"/></p>

<p>Post 发送发送:
<input type="text" name="wz1"/></p>

<input type="submit" value="OK"/>
</form>

 

后台的php就是从上面的name内的值获取需要的内容

 

 代码如下 复制代码

<?php
$a = $_GET ['wz'];
if($a==null){echo "对方没输入"."</br>";}else{
echo "我是GET接收方式:".$a."</br>";}

$b = $_GET ['wz1'];
if($b==null){echo "对方没输入"."</br>";}else{
echo "我是POST接收方式:".$b."</br>";}
?>


这里的php意思以get模式来获取标签内属性name里面的值

然而echo 在php中就是打印出来 if就是先加以判断~ 注意:如果表单是post传值我们必须使用$_POST才可以接受数据

例子、url传值

 这个是要发送的php代码

   

 代码如下 复制代码

<?php
include_once('zq/db.php');
$sql = "select * from wd_sql";
$query=mysql_query($sql);
 $i = 1;
 while ($result = mysql_fetch_array($query)) {
 $x = $i++;
   "<br><a href='del.php?xx=".$result['id']."&ccxc=wd_sql'>删除</a>"//在这里实现了传值
}
?>


这个是接收值的php

 代码如下 复制代码

<?php
$uid = $_GET['xx'];
$db_sql = $_GET['ccxc'];
if(mysql_query($sql) == 1)
{echo "<script>alert('删除成功!');history.go(-1);</script>";}
?> 

在php中浮点数是一个非常有用的数据类型了,但是他同样也给我们带来很多的细节问题,下面我来举个实例来分析PHP浮点数的一个常见问题

先看看这段代码:

 代码如下 复制代码

<?php
    $f = 0.58;
    var_dump(intval($f * 100)); //为什么输出57
?>

为什么输出是57?

我相信有很多的同学有过这样的疑问,bugs.php.net上经也常有人问。

要搞明白这个原因, 首先我们要知道浮点数的表示(IEEE 754):

浮点数, 以64位的长度(双精度)为例, 会采用1位符号位(E), 11指数位(Q), 52位尾数(M)表示(一共64位).

符号位:最高位表示数据的正负,0表示正数,1表示负数。

指数位:表示数据以2为底的幂,指数采用偏移码表示

尾数:表示数据小数点后的有效数字.

这里的关键点就在于, 小数在二进制的表示, 关于小数如何用二进制表示, 大家可以百度一下, 我这里就不再赘述, 我们关键的要了解, 0.58 对于二进制表示来说, 是无限长的值(下面的数字省掉了隐含的1)..


0.58的二进制表示基本上(52位)是: 0010100011110101110000101000111101011100001010001111
0.57的二进制表示基本上(52位)是: 0010001111010111000010100011110101110000101000111101

而两者的二进制, 如果只是通过这52位计算的话,分别是:


0.58 -> 0.57999999999999996
0.57 -> 0.56999999999999995

至于0.58 * 100的具体浮点数乘法, 我们不考虑那么细, 有兴趣的可以看(Floating point), 我们就模糊的以心算来看… 0.58 * 100 = 57.999999999

那你intval一下, 自然就是57了….

可见, 这个问题的关键点就是: “你看似有穷的小数, 在计算机的二进制表示里却是无穷的”

so, 不要再以为这是PHP的bug了, 这就是这样的.

php中更新数据中的记录使用update的sql语句,这个只要在php连接数据库之后执行sql语句即可,下面我们一起来看个例子。

sql有许多对数据库操作的语句。但是常见和比较需要的是这么几个语句 。UPDATE 语句用于在数据库表中修改数据。


UPDATE table_name  SET column1 = value1,column2 = value2 ...  WHERE column = some_value


例如,将user表中用户“张三”的密码修改为“ abc123 ”,年龄修改为“ 45 ”,SQL语句可以是这样:

UPDATE user SET password='abc123' , age='45'  WHERE  name='张三'

注意:UPDATE...SET...一般与WHERE子句一起使用,否则将修改数据表中的全部记录!

UPDATE 语句的例子

 代码如下 复制代码

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
mysql_query("UPDATE Persons SET Age = '36'
WHERE FirstName = 'Peter' AND LastName = 'Griffin'");
mysql_close($con);
?>

批量更新数据

 

 代码如下 复制代码

$sql="select * from booking_tables_info1";
  $query=$db->query($sql);
if($_POST['btnSave']){
   $checkbox = $_POST['range'];
/*如果要获取全部数值则使用下面代码*/
  for($i=0;$i<=count($checkbox);$i++)
   {
   if(!is_null($checkbox[$i]))
    {
     $chechvalue.=$checkbox[$i];
     $str="update booking_tables_info1 set ispass=1 where info_id=$chechvalue";
     $db->query($str);
    }
   }
   echo "<script>alert('更新成功!');window.location.href='http://blog.163.com/sun_jian_zhang/blog/memberManager.php';</script>";

}
?>

<html>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="PHPEclipse 1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>会员管理页面</title>
 <script type="text/javascript" language="javascript">
        function selectBox(selectType){
        var checkboxis = document.getElementsByName("range[]");
        if(selectType == "reverse"){
            for (var i=0; i<checkboxis.length; i++){
                //alert(checkboxis[i].checked);
                checkboxis[i].checked = !checkboxis[i].checked;
            }
        }
        else if(selectType == "all")
        {
            for (var i=0; i<checkboxis.length; i++){
                //alert(checkboxis[i].checked);
                checkboxis[i].checked = true;
            }
        }
     }
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
<form action="" method="post">
  <table border=1>
    <tr>
      <td>会员编号</td><td>卡型号</td><td>卡号< /td><td>名字</td><td>性别</td><td>年龄< /td><td>爸爸电话</td><td>妈妈电话</td><td>联系方 式</td><td>住址</td><td>宣言</td><td>是否通 过</td><td>参与时间</td><td><input type="button" value="全选" onclick="selectBox('all')"/><input type="button" value="反选" onclick="selectBox('reverse')"/></td>
    </tr>www.111cn.net
  <?php
      while($row=$db->fetch_array($query)){
      ?>
    <tr>
      <td><?php echo $row['info_id']?></td><td><?php echo $row['cardtype']?></td><td><?php echo $row['cardno']?></td> <td><?php echo $row['name']?></td><td><?php if($row['sex']==1){echo "男";}else{echo "女";}?></td><td><?php echo $row['age']?></td> <td><?php echo $row['fathermobile']?></td><td><?php echo $row['mothermobile']?></td><td><?php echo $row['tel']?></td> <td><?php echo $row['address']?></td><td><?php echo $row['enounce']?></td><td><?php echo $row['ispass']?></td><td><?php echo $row['jointime']?></td><td>
      <input type="checkbox" name="range[]" value="<?php echo $row['info_id'] ?>"/>


  </td>
    </tr>
      <?php
  }
    ?>
  </table>
<br>
<input type="submit" name="btnSave" value="批量审核通过"/>
</form>
</body>
</html>

注意在批量更新时要注意:<input type="checkbox" name="range[]" value="<?php echo $row['info_id'] ?>"/>中的name为range[]以数组形式。

sprintf与print 及printf都是输出字符串,但它们在细节中会有很大的区别,下面本文章就来重点介绍这个问题。

下面是一个示例:四舍五入保留小数点后两位

 代码如下 复制代码

<?php
$num1 = 21;
echo sprintf("%0.2f",$num1)."<br />"; //输出 21.00
$num2 = 16.3287;
echo sprintf("%0.2f",$num2)."<br />"; //输出 16.33
$num3 = 32.12329;
echo sprintf("%0.2f",$num3)."<br />"; //输出 32.12 www.111Cn.net
?>

解释下 %0.2f 的含义:

% 表示起始字符
0 表示空位用0填满
2 表示小数点后必须占两位
f 表示转换成浮点数


转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
% 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字元。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。

printf与sprintf的区别

1. printf函数:

int printf ( string format [, mixed args [, mixed ...]] )

Produces output according to format , which is described in the documentation for sprintf() .

Returns the length of the outputted string.

 

把文字格式化以后输出,如:

 代码如下 复制代码
$name="hunte";
$age=25;
printf("my name is %s, age %d", $name, $age);

2. sprintf函数:
string sprintf ( string format [, mixed args [, mixed ...]] )

Returns a string produced according to the formatting string format .

 

跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。


3. print函数:

是函数,可以返回一个值,只能有一个参数。

int print ( string arg )

Outputs arg . Returns 1 , always.

 

使用静态局部变量的原因是它不能被外部使用,但是它的值依然在没此使用后保留。虽然使用全局变量可以实现相同的功能,但是它经常会造成意外。 静态局部变量的特点:

1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值


2.静态局部变量只会初始化一次


3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。

4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

 

 代码如下 复制代码
function test()
{
    static $var = 5;  //static $var = 1+1;就会报错
    $var++;
    echo $var . ' ';
}
 
 
test(); //2
test(); //3
test(); //4
echo $var; //报错:Notice: Undefined variable: var

关于静态全局变量

 代码如下 复制代码

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;
    $glo++;
    echo $glo.'<br>';
}
 
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . '<br>'; //3


$a 将会在包含文件 b.inc 中生效。

 代码如下 复制代码

 

    <?php 
    $a = 1; 
    include "b.inc"; 
    ?>


    <?php 
    //局部变量测试 
    $s1= "out s1"; //全局变量  
     
    function say(){ 
        $s1 = "in s1"; //局部变量 
        echo "say():$s1"; 
    } 
    say(); //输出局部变量: in s1 
    echo "<br/>"; 
    echo "function out:$s1"; ////输出全局变量:out s1 
     
     
    //static变量测试 
    function count1(){ 
        $num = 0; 
        $num++; 
        echo $num." "; 
    } 
     
    function count2(){ //www.111cn.net
        static $num = 0; 
        $num++; 
        echo $num." "; 
    } 
     
    for($i=0; $i<10; $i++){ 
        count1(); //11 1 1 1 1 1 1 1 1 1  
    } 
    echo "<br/>"; 
    for($i=0; $i<10; $i++){ 
        count2(); //1 2 3 4 5 6 7 8 9 10  
    } 
     
     
    echo "<br/>"; 
     
    //全局变量在函数中运用,加global 
     
    $a="php"; 
    $b = "java"; 
     
    function show(){ 
        echo $a; // 无输出 
        global $b; 
        echo $b; //定义global,输出java 
    } 
    show(); 
    ?>  

 

输出3

 

 代码如下 复制代码

    <?php 
    $a = 1; 
    $b = 2; 
     
    function Sum() 
    { 
        global $a, $b; 
     
        $b = $a + $b; 
    } 
     
    Sum(); 
    echo $b; //3 
    ?>  

 

在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组

 代码如下 复制代码


    <?php 
    $a = 1; 
    $b = 2; 
     
    function Sum() 
    { 
        $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; 
    } 
     
    Sum(); 
    echo $b; 
    ?>  

静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数

 代码如下 复制代码


    function Test() 
    { 
        static $count = 0; 
     
        $count++; 
        echo $count; //12345678910  
        if ($count < 10) { 
            Test (); 
        } 
        //$count--; 
    } 
    Test(); 

总结

局部变量——用在函数内,作用域就是所在函数
全局变量——在函数外,作用域在整个php文件(包含了 include 和 require 引入的文件),但在函数中不能读到,除非重新申明为global
静态变量——用在函数内,被调用完后,内存不释放,保留最后值,多用来统计累加。

[!--infotagslink--]

相关文章

  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • 微信小程序 页面传值详解

    这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • jQuery实现切换页面过渡动画效果

    直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • 解决vue刷新页面以后丢失store的数据问题

    这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • PHP页面转UTF-8中文编码乱码的解决办法

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
  • 解决vuex数据页面刷新后初始化操作

    这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • java后台实现js关闭本页面,父页面指定跳转或刷新操作

    这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • JavaScript 获取滚动条位置并将页面滑动到锚点

    这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09
  • vue实现在进行增删改操作后刷新页面

    这篇文章主要介绍了vue实现在进行增删改操作后刷新页面,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
  • Pycharm 跳转回之前所在页面的操作

    这篇文章主要介绍了Pycharm 跳转回之前所在页面的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
  • Vue父子组件传值的一些坑

    这篇文章主要介绍了Vue父子组件传值的一些坑,帮助大家更好的理解和使用vue父子组件,感兴趣的朋友可以了解下...2020-09-16
  • Android中用HttpClient实现Http请求通信

    本文我们需要解决的问题是如何实现Http请求来实现通信,解决Android 2.3 版本以后无法使用Http请求问题,下面请看正文。 Android开发中使用HttpClient来开发Http程序...2016-09-20