当前位置:  编程技术>php
本页文章导读:
    ▪一家之言的经验之谈php+mysql扎实个人基本功       一. 10句话 1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的那天起,就应该勇敢地把它设为OFF. 2.写程序前看看怎么用error_.........
    ▪php部分常见问题总结       目录: 1:为什么我得不到变量 2:调试你的程序 3:如何使用session 4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失 5:如何截取指定长度汉字而不会出现以"?>"结.........
    ▪php+mysql分页代码详解       代码如下:<?php    $perpagenum = 10;//定义每页显示几条    $total = mysql_fetch_array(mysql_query("select count(*) from a"));//查询数据库中一共有多少条数据    $Total = $total[0];             .........

[1]一家之言的经验之谈php+mysql扎实个人基本功
    来源: 互联网  发布时间: 2013-11-30
一. 10句话
1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的那天起,就应该勇敢地把它设为OFF.
2.写程序前看看怎么用error_reporting.
3.不懂就问本身没错,但你需要在那之前查查手册。
4.当然,你需要懂得使用手册。手册上找不到答案的时候,应该考虑下网络上的搜索引擎。
5.刚学会php+mysql之后,不要叫嚷着要写论坛,要写XXX。要明白,刚学会写汉字并不表示你有能力写诗。
6.在学web编程的时候,你应该先去认识html这个朋友。
7.有点能力后,试着回答新手的问题,不要看到自己懂的而别人不懂就沾沾自喜,扔下一名“简单,那是基本的东西”就走更要不得。
8.思考是一个好习惯,不动手去写就等于空想,什么也没有。
9.写好一段程序,如果觉得很满意,一周后再看一遍,也许你会认为它应该有所改变
10.有空多看看别人的程序,找出他人的不足或优点,自己掂量。
二. 各取所需

1.善于使用“引用”,它能直接影响到程序的效率。

2.善于用三元运算子,可以让程式较精简有效率。
比如:

PHP代码:--------------------------------------------------------------------------------
if ($data[$i]['nickname'])
{
  $nickname = $data[$i]['nickname'];
}
else
{
  $nickname = $data[$i]['ip'];
}

--------------------------------------------------------------------------------

可以写成:

PHP代码:--------------------------------------------------------------------------------
$nickname = $data[$i]['nickname'] ? $data[$i]['nickname'] : $data[$i]['ip'];

--------------------------------------------------------------------------------


3.善于组织if...else...回圈
比如:

PHP代码:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!empty($type))
{
  if (!strpos($type, $ext_name))
  {
    echo "Please upload the file of $type form.";
    exit();
  }
}

--------------------------------------------------------------------------------

上面的代码你应该写成这样:

PHP代码:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!($type==='') && strpos($type, $ext_name)===false)
{
  echo "Please upload the file of $type form.";
  exit();
}

--------------------------------------------------------------------------------


4.尽量让你的代码清淅些
如果写成这样,是比较让人头痛的:

PHP代码:--------------------------------------------------------------------------------
$foo=$_post["foo"];
  $username=$_post["user"]; 
$group=$_POST["group"];
if ($group=="wheel"){
$username=$username."wheel";
}

--------------------------------------------------------------------------------

同样的代码,这样就比较让人看得舒服了:

PHP代码:--------------------------------------------------------------------------------
$foo     = $_post["foo"];
$username = $_post["username"];
$group   = $_POST["group"];
if ($group=="wheel")
{
  $username = $username."wheel";
}

--------------------------------------------------------------------------------

当然,有一定基础后,你应该要写成这样:

PHP代码:--------------------------------------------------------------------------------
$foo     = &$_POST['foo'];
$username = $_POST["group"]!='wheel' ? $_POST["username"] : $_POST["username"].'wheel';

--------------------------------------------------------------------------------

5.编写规范的mysql 语句。
字段和表名用"`"引起来,避免保留字的影响。
如果看到下面这样的一个sql query,会让人比较头痛:

PHP代码:--------------------------------------------------------------------------------
$query="select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` from `flash_comment` left join `product` on ( `flash_comment`.`p_no` = `product`.`p_no` ) left join `sgflash` on ( `product`.`p_name` = `sgflash`.`f_name` ) where `flash_comment`.`p_no` != '' order by `flash_comment`.`date`";

--------------------------------------------------------------------------------

同样的一个query,写成这样就令人看得明白得多了:

PHP代码:--------------------------------------------------------------------------------
$query = "Select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` 
      FROM `flash_comment` 
      LEFT JOIN `product` ON ( `flash_comment`.`p_no` = `product`.`p_no` ) 
      LEFT JOIN `sgflash` ON ( `product`.`p_name` = `sgflash`.`f_name` ) 
      Where `flash_comment`.`p_no` != ''
      orDER BY `flash_comment`.`date`";

--------------------------------------------------------------------------------


//
..... 

    
[2]php部分常见问题总结
    来源: 互联网  发布时间: 2013-11-30
目录:
1:为什么我得不到变量
2:调试你的程序
3:如何使用session
4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失
5:如何截取指定长度汉字而不会出现以"?>"结尾,超出部分以"..."代替
6:规范你的SQL语句
7:如何使Html/PHP格式的字符串不被解释,而是照原样显示
8:怎么在函数里取得函数外的变量值
9:我怎么知道系统默认支持什么函数
10:如何比较两个日期相差几天
11:为什么我升级PHP后,原来的程序出现满屏的 Notice: Undefined variable:
12:我想在每个文件最前,最后面都加上一文件.但一个一个添加很麻烦
13:如何利用PHP上传文件
14:如何配置GD库
15:什么是UBB代码
16:我想修改MySQL的用户,密码
17:我想知道他是通过哪个网站连接到本页
18:数据放入数据库和取出来显示在页面需要注意什么
19:如何读取当前地址栏信息
20:我点击后退按钮,为什么之前填写的东西不见
21:怎么在图片里显示IP地址
22:如何取得用户的真实IP
23:如何从数据库读取三天内的所有记录
24:如何远程链接Mysql数据库
25:正则到底怎么用
26:用Apache后,主页出现乱码 
27:为什么单引号,双引号在接受页面变成(\'\")
28:怎么让程序一直运行下去,而不是超过30秒就停止
29:计算当前在线人数
30:什么是模板,怎么用
31:怎么用php解释字符


1:为什么我得不到变量

我在一网页向另一网页POST数据name,为什么输出$name时却得不到任何值?

在PHP4.2以后的版本中register_global默认为off
若想取得从另一页面提交的变量:

方法一:在PHP.ini中找到register_global,并把它设置为on.
方法二:在接收网页最前面放上这个extract($_POST);extract($_GET);(注意extract($_SESSION)前必须要有Session_Start()).
方法三:一个一个读取变量$a=$_GET[\"a\"];$b=$_POST[\"b\"]等,这种方法虽然麻烦,但比较安全.

2:调试你的程序

在运行时必须知道某个变量为何值。我是这样做的,建立一文件debug.php,其内容如下:

PHP代码:--------------------------------------------------------------------------------

<?PHP
Ob_Start();
Session_Start();
Echo \"<pre>\";

Echo \"本页得到的_GET变量有:\";
Print_R($_GET);

Echo \"本页得到的_POST变量有:\";
Print_R($_POST);

Echo \"本页得到的_COOKIE变量有:\";
Print_R($_COOKIE);

Echo \"本页得到的_SESSION变量有:\";
Print_R($_SESSION);
Echo \"</pre>\";
?>

--------------------------------------------------------------------------------

然后在php.ini中设置:include_path = \"c:/php\",并将debug.php放在此文件夹,
以后就可以在每个网页里包含此文件,查看得到的变量名和值.

3:如何使用session

凡是与session有关的,之前必须调用函数session_start();

为session付值很简单,如:


PHP代码:--------------------------------------------------------------------------------

<?php
Session_start();
$Name = \"这是一个Session例子\";
Session_Register(\"Name\");//注意,不要写成:Session_Register(\"$Name\");
Echo $_SESSION[\"Name\"];
//之后$_SESSION[\"Name\"]为\"这是一个Session例子\"
?>

--------------------------------------------------------------------------------



在php4.2之后,可以为session直接付值:

PHP代码:--------------------------------------------------------------------------------

<?PHP
Session_Start();
$_SESSION[\"name\"]=\"value\";
?>

--------------------------------------------------------------------------------

取消session可以这样:

PHP代码:--------------------------------------------------------------------------------

<?php
session_start();
session_unset();
session_destroy();
?>

--------------------------------------------------------------------------------


取消某个session变量在php4.2以上还有BUG.



注意:

1:在调用Session_Start()之前不能有任何输出.例如下面是错误的.
==========================================
1行
2行 <?PHP
3行 Session_Start();//之前在第一行已经有输出
4行 .....
5行 ?>
==========================================


提示1:

凡是出现\"........headers already sent..........\",就是Session_Start()之前向浏览器输出信息.
去掉输出就正常,(COOKIE也会出现这种错误,错误原因一样)

提示2:

如果你的Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
1行 <?PHP Ob_Start(); ?>
........这里是你的程序......



2:这是什么错误

Warning: session_start(): open(/tmp\\sess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因为你没有指定session文件的存放路径.

解决方法:
(1)在c盘建立文件夹tmp
(2)打开php.ini,找到session.save_path,修改为session.save_path= \"c:/tmp\"



4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失


PHP代码:--------------------------------------------------------------------------------

<?php
$Var=\"hello php\";//修改为$Var=\"   hello php\";试试得到什么结果
$post= \"receive.php?Name=\".$Var;
header(\"location:$post\");
?>

--------------------------------------------------------------------------------

receive.php的内容:

PHP代码:--------------------------------------------------------------------------------

<?PHP
Echo \"<pre>\";
Echo   $_GET[\"Name\"];
Echo \"</pre>\";
?>

--------------------------------------------------------------------------------


正确的方法是:

PHP代码:--------------------------------------------------------------------------------

<?php
$Var=\"hello php\";
$post= \"receive.php?Name=\".urlencode($Var);
header(\"location:$post\");
?>

--------------------------------------------------------------------------------


在接收页面你不需要使用Urldecode(),变量会自动编码.


5:如何截取指定长度汉字而不会出现以\"?>\"结尾,超出部分以\"...\"代替


一般来说,要截取的变量来自Mysql,首先要保证那个字段长度要足够长,一般为char(200),可以保持100个汉字,包括标点.

PHP代码:--------------------------------------------------------------------------------

<?PHP
$str=\"这个字符好长呀,^_^\";
$Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...
Echo   \"$Short_Str\";
Function csubstr($str,$start,$len) 

$strlen=strlen($str); 
$clen=0; 
for($i=0;$i<$strlen;$i++,$clen++) 

if ($clen>=$start+$len) 
break; 
if(ord(substr($str,$i,1))>0xa0) 

if ($clen>=$start) 
$tmpstr.=substr($str,$i,2); 
$i++; 

else 

if ($clen>=$start) 
$tmpstr.=substr($str,$i,1); 



return $tmpstr; 

Function showShort($str,$len) 

$tempstr = csubstr($str,0,$len); 
if ($str<>$tempstr) 
$tempstr .= \"...\"; //要以什么结尾,修改这里就可以.

return $tempstr; 
}

--------------------------------------------------------------------------------



6:规范你的SQL语句[/color]


在表格,字段前面加上\"`\",这样就不会因为误用关键字而出现错误,
当然我并不推荐你使用关键字.

例如
$Sql=\"Insert INTO `xltxlm` (`author`, `title`, `id`, `content`, `date`) VALUES (\'xltxlm\', \'use`\', 1, \'criterion your sql string \', 
    
[3]php+mysql分页代码详解
    来源: 互联网  发布时间: 2013-11-30

代码如下:

<?php   
$perpagenum = 10;//定义每页显示几条   
$total = mysql_fetch_array(mysql_query("select count(*) from a"));//查询数据库中一共有多少条数据   
$Total = $total[0];                          //   
$Totalpage = ceil($Total/$perpagenum);//上舍,取整   
if(!isset($_GET['page'])||!intval($_GET['page'])||$_GET['page']>$Totalpage)//page可能的四种状态   
{   
    $page=1;   
}   
else   
{   
    $page=$_GET['page'];//如果不满足以上四种情况,则page的值为$_GET['page']   
}   
$startnum     = ($page-1)*$perpagenum;//开始条数   
$sql = "select * from a order by id limit $startnum,$perpagenum";//查询出所需要的条数   
echo $sql."   
";   
$rs = mysql_query($sql);   
$contents = mysql_fetch_array($rs);   
if($total)如果$total不为空则执行以下语句   
{   
    do   
    {   
    $id = $contents['id'];   
    $name = $contents['name'];   
    ?>   
    <table border="0" align="center">   
    <tr>   
    <td>id:   
    <?php echo $id;?>   
    </td>   
    </tr>   
    <tr>   
    <td>name:   
    <?php echo $name;?>   
    </td>   
    </tr>   
    </table>   
    <?php   
    }   
while($contents = mysql_fetch_array($rs));//do....while   
$per = $page - 1;//上一页   
$next = $page + 1;//下一页   
echo "<center>共有".$Total."条记录,每页".$perpagenum."条,共".$Totalpage."页 ";   
if($page != 1)   
{   
echo "<a href='".$_SERVER['PHP_SELF']."'>首页</a>";   
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$per."'> 上一页</a>";   
}   
if($page != $Totalpage)   
{   
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$next."'> 下一页</a>";   
echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$Totalpage."'> 尾页</a></center>";   
}   
}   
else如果$total为空则输出No message   
{   
echo "<center>No message</center>";   
}   
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
oracle iis7站长之家
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3