第一篇:一个自己学习总结的php类学习笔记
1,类:类是一组具有相同数据结构和相同操作的对象的集合,类是对象的抽象,他将一组数据属性和在数据上的一组合法操作抽象封装,类好比是一个对象模板,基于类就可以生成多个具有不同属性值的对象。
2,创建类:
Class classname
{
}
3,为该类添加属性和方法:只需要在类中声明变量即可。声明了属性之后可以获取该属性的值。
⑴创建属性:Class classname
{
Var $myName;
Var $myAge;
}
⑵创建方法:class classname
{
Var $myName;
Var $myAge;
Function getName()
{
}
Function getAget($arg1,$arg2)
{
}
}
注:以上创建了两个类的方法,方法名称分别为:getName,getAge
4,构造函数:大多数的类都有构造函数,当一个类实例被调用时,将调用构造函数,通常在构造函数中将执行一些初始化的操作。
⑴在类中声明构造函数:同声明其他函数一样,但是构造函数的名称是固定的。即函数名必须为:__construct()
注:构造函数可以由编程人员主动调用,但大部分时候,都是在创建类对象实例的时候自动调用。构造函数也可以传递参数,这些参数可以在调用类的时候传递。
声明构造函数的方法:
Class classname
{
Function __construct($param)
{
代码
}}
⑵析构函数:是一种当对象被销毁时,无论使用了unset()或简单的脱离范围,都会被自动调用的函数。
与构造函数的名称类似,一个类的析构函数名称必须是_destruct()
5,类的实例化:声明了一个类之后,如果要使用该类,必须创建该类的一个实例,实际上也可以将该类作为一个变量,在使用之前必须手动定义。用关键字“new”来创建
一个类的实例。
Class classname
{
Function __construct($myName)
{echo(“我的名字是:$myName
”);}
}
$name1=new myName(“小猪”);
$name2=new myName(“小狗”);//创建了2个该类的实例
?>
注:new myName(“小猪”)中的参数“小猪”会被 自动传递到构造函数,然后构造函数直接使用该参数。
6,使用类的属性:
在一个类中访问类成员变量有一个特殊的指针:$this通过该指针可能方便的访问类属性或是给类属性赋值。
Class classname
{
Var $myattrib;//定义属性
Function operate($myparam)//为类创建方法
{
$this->myattrib=$myparam;//设置属性值为$myparam
Echo $this->myattrib;//输出属性值
}
}
⑴如果要在类的外部访问一个类的属性,需要确定该属性能否被外部访问。因为在类中定义的属性可以设置外界访问的权限。
以上对属性$myarrtib进行限制,外界可以直接访问:
$newclass =new classname();//创建一个类classname实例
$newclass->myattrib=”小马”;//给属性赋值
Echo $newclass->myattrib;//输出属性
⑵从类的外部直接访问类的属性不是一个好的方法,面向对象方法的一个优点就是使用类的封装。可以通过使用__get()和__set()函数来实现对该类属性的访问。
Class classname
{
Var $myattrib;//定义属性
Function __get($attribName)//获取属性值的函数
{
Return $this->attribName;//返回该属性的值
}
Function __set($arrtibName,$value)//设置属性值的函数
{
$this->$attribName=$value;//设置属性值
}
}
注:__get函数只有一个参数,该参数用来传递属性的名称,__set函数有两个参数,第一个参数为属性的名称,第二个参数为要设置的属性的值。可以通过这两 个函数来检查和设置任何属性的值。
7,类的访问控制:
Php5 支持的3 种控制符:
⑴public(默认的)public表示该属性和方法在类的内部或外部都可以直接被访问。
⑵private 表示该属性和方法只能在类的内部进行访问。如果没有使用__get()和__set(),则可能对所有的属性都使用这个关键字,也要选择部分方法为私有,但私有的属性和方法不能被继承。
⑶Protected 表示被标记的属性或方法只能在类的内部进行访问,他也存在于任何子类中。Class classname
{
Public $myattrib;
Public function __get($attribName)//获取属性值的函数
{
Return $this->$attribName;//返回该属性值
}
Public function __set($attribName,$value)//设置属性值的函数
{
This->$attribName=$value;//设置属性值
}
}
8,类方法的调用:
Class classname
{
Var $myAttrib;
Function func_1($param)//函数func_1
{
代码
}
Function func_2($param1$param2)
{
代码
}
Function func_3($param1$param2)
{
代码
Return backvalue;
}
}
调用以上类的3个函数:
$newclass->func_1(“123”);
$newclass->func_2(“123”,”abc”);
$myvalue=$newclass->func_3(“123”,”abc”);//调用func_3并获取返回值。
9,有关类的代码:
$this通过该指针可能方便的访问类属性或是给类属性赋值。class Employee//创建一个类“Employee”
{
var $empno;// 员工人数//定义类的属性
var $empnm;// 员工姓名
function add_employee($in_num, $in_name)//创建类的方法为“add_employee”
{
$this->empno = $in_num;//给类的属性赋值
$this->empnm = $in_name;
}
function show()//创建类的方法为“show”
{
echo “$this->empno, $this->empnm”;//输出属性值
return;
}
function changenm($in_name)
{
$this->empnm = $in_name;}
}
$sbabu = new Employee;
$sbabu->add_employee(10,“sbabu”);$sbabu->changenm(“babu”);$sbabu->show();
第二篇:php学习总结
调试/*………*/ //…….#..........插入时考虑清楚字段类型避免插入后出现缺值,乱码
@ 屏蔽错误or die 条件显示
以前学习php类的总结:
1.php中不能重载,但是能用子类覆盖父类的方法名称来实现新的重载
1.1 在子类中调用父类的覆盖部分可以使用 父类名称::方法名称();
2.final 只能定义类和方法,不能使用final定义成员属性,因为final是常量的意思,在php里定义常量使用的是define函数
2.1 final关键字标记的类不能被继承
2.2 final关键字标记的方法不能被子类重写
3.const是一个定义常量的关键字,在php中定义常量使用的是define()函数,但是在类里定义常量使用的是“const” 这个关键字
3.1在程序中不能修改它的值。
3.2 访问const 修饰的成员属性要使用类名,在本类的方法里使用“self”关键字,但不使用“$”符号,也不能使用对象来访问。
4.static关键字可以描述类中的成员属性和成员方法
4.1 static 的成员属于类,而不属于任何对象,4.2 static的成员是在类第一次被加载的时候分配的空间,其他类无法访问的,只对类的实例共享,能一定程度对类该成员形成保护
4.3 静态成员放到了“初始化静态段”,在类第一次加载的时候放入的,可以让堆内存里的每个对象共享。所以在静态方法里,可以使用这个方法所在的类的“类名”,也可以使用“self”来访问其他静态成员。“self”代表这个静态方法所在的类。
4.3.1 在类里的静态方法是不能访问类的非静态成员的。
4.3.2 在类的非静态方法里可以访问静态成员:”self:成员属性“;
4.4类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样,类似于全局函数。
4.5 在类内函数访问静态变量时前面加self::静态函数
4.6 静态变量可以在类外直接访问,访问方法是类名::静态变量
4.7 静态函数可以在类外直接访问,访问方式是类名::静态函数
4.8 在类内静态函数访问另一个静态函数时使用 类名::静态函数名
4.8.1 静态函数在类内访问静态变量时,访问方式是类名::静态变量
4.8.2 静态函数在类内访问静态变量时,访问方式除了是类名::静态变量外,还可以使用self::静态变量
4.9 在类内静态函数访问另一个静态函数时除了使用 类名::静态函数名外,还可以使用self::静态函数名,也可以直接调用静态函数
4.10 静态函数内不能访问非静态变量
4.11 在类内静态函数不能使用$this->非静态函数名访问非静态函数,可以使用self::非静态函数名
4.12
5.类里的”$this“,在php里面提供了一个本对象的引用$this,每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用。
5.1 $this 就是对象内部代表这个对象的引用。
6.类里“self”,self 和$this相似,只不过self是代表这个静态方法所在的类,所以在静态方法里,可以使用这个方法所在的类的”类名“,也可以使用“self”来访问其他的静态成员,通常使用后者”self::成员属性“。
7.类里”__“开头的函数名
7.1类里”__“开头的函数名都是在某一时刻不同情况下自动调用执行的方法。
7.2__toString()方法也是自动被调用,是直接输出对象引用时自动调用的。比如“$p = new Person()”,直接用echo输出$p会产生错误,如果在类里定义了__toString()方法,再用echo直接输出对象引用的时候就不会产生错误了
8.对象串行化
8.1 __sleep()方法,在对象串行化的时候,会调用一个__sleep()方法来完成一些睡前的事情,__sleep()函数不接受任何参数,但返回一个数组,其中包含需要串行化的属性。未被包含的属性降在串行化时被忽略,如果没有__sleep()方法,php将保存所以属性.8.2 __wakeup()方法,在重新醒来时,即由二进制串重新组成一个对象的时候,则会自动调用__wakeup(),做一些对象醒来就要做的动作。
8.3 有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找__sleep和__wakeup方法.9.protected 成员能被同个类中的所有方法和继承出的类的中所有方法访问到,不能被父类的实例直接访问。protected and public 可以动态绑定
10.private 大部分private属性仍然可以被外部代码共享.解决方法是用一对public方法,一个是get(获取属性的值),另一个是set(设置属性的值).10.1private 不可以动态绑定。Private成员只存在于它们所在的类内部.不像public和protected成员那样,PHP模拟静态绑定.10.2 什么时候用到private?private成员只有当你不想让子类继承改变或特殊化父类的行为时才用到,这种情况比你想像的要少,通常来说,一个好的对象分层结构应当允许绝大多数功能被子类特殊化,改进,或改变—这是面向对象编程的基础之一。一定的情况下需要private方法或变量,例如当你确信你不想允许子类改变父类中的某个特定的部份。
11.抽象类:抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码.如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类.你不能实例化抽象类.你必须继承它们,然后实例化子类.你也可以把抽象类看成是子类的一个模板.如果你覆写所有的抽象方法, 子类就变成一个普通的类.如果没有覆写所有方法, 子类仍是抽象的.如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.声明抽象方法的语法与声明一般方法不同.抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.12.接口:如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface).为了说明这种情况, PHP中有interface 和implements关键字.你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口.例如, 你可以写一个myClass implements myIterface.这两种方法可以依个人偏爱来选择.12.1 如果接口中出现非抽象方法.会报错
12.2 接口中的方法默认是public 型的.其它类型的修饰符,不能修饰接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修饰.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以声明静态方法.12.5 在接口中可以有常量,e.g.:
interfaceUser{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace关键字给一块代码命名.在这个代码块外部,脚本必须用操作符::加上命名空间的名称来引用这个代码块.引用静态的类成员也是用相同的方法.在命名空间内代码不需要声明命名空间, 它本身就是默认的.这种方法比添加前缀的方法好.你的代码可由此变得更加紧凑和可读.你可能想知道是否可以建立分层的(嵌套的)命名空间.答案是不可以.但你可以在命名空间名称后加上冒号, 你可以再次调用在名称中不包含冒号的变量,函数和类.命名空间允许存在冒号,只要不是第一个字符和最后一个字符或接着另一个冒号.命名空间的名称中的冒号对于PHP来说没有任何意义, 但如果你用他们来区分逻辑上的区块, 他们可以很好地说明你的代码中的父子(parent-child)关系.14.__toString()打印对象会调用它的__toString方法.15.不能实例化的类
//
//当__construct()为public时可以实例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留给外部访问.
class A{
private function __construct(){}
static function getClassA(){
return “这里是后门,可以通过这里进入类内部..”;
}
}
echo A::getClassA();
?>
15.2
//不能用new实例化的类.
//static的方法留给外部访问.
//在方法内部返回实例.
class A{
private function __construct(){
echo “this is construction
n”;
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一对象.”;
}else{
echo “
$a1 $a2 不是一个对象.”;
}
//this is construction
//this is construction
//$a1 的类是 A , $a2 是 A
//$a1 $a2 不是一个对象.?>
15.3
//不能用new实例化的类.
//static的方法留给外部访问.
//在方法内部返回实例.
//定义静态属性保证这个实例能被静态方法调用.
//增加判断部分.
class A{
private static $a = null;
private function __construct(){}
static function getClassA(){
if(null == self::$a){
self::$a = new A();
}
return self::$a;
}
}
// 看到这里确实返回的是 A 的实例.但不是同一个对象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的类是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一对象.”;
}else{
echo “
$a1 $a2 不是一个对象.”;
}
//$a1 的类是 A , $a2 是 A
//$a1 $a2 指向同一对象.?>
第三篇:PHP学习推荐
PHP学习推荐
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,现在越来越多的人加入到了php的大家庭中,其中很多人只是浅尝辄止,为何会如此呢?最大的障碍莫过于学习的过程枯燥乏味,从而失去学习兴趣,那么小编就自己的经验来说说怎样学习php吧。
学习方法之视频教程
相对于读书来说,我更喜欢看视频学习,可能小编我对影像比文字记忆更加深刻吧。每看完一个视频教程,我都会闭上眼睛休息一会,把刚才看的内容消化消化,然后再开始练习刚才看过的内容,尽可能不边看边做,因为这样学的快同样也忘得快,如果实在想不起来的话,可以再打开教程看一遍,切记不可囫囵吞枣,好高骛远,要稳扎稳打,把你看过的教程切切实实的记在心里。只有一步一个脚印,你的学习之路才能走的更远,否则的话,你走的越远,越会觉的道路是如此艰辛,或许你就会放弃学习。那么都有哪些视频教程能帮我们学习php呢,小编我就为大家介绍几个吧:
php100
LAMP兄弟连
李炎恢的php
学习方法之看书: 1.《PHP与MySQL程序设计(第4版)》
2.《PHP Web 2.0 开发实战》
3.《PHP高级程序设计:模式、框架与测试》
4.《PHP 5 高级应用开发实践》
5.《细说php》
学习过程中不要死记语法,要多动手,多练习,当你遇到问题的时候,首先尝试自己解决。多用google,baidu,网络是一个大知识库,是最好的老师,你遇到的问题,别人也遇到过,多去搜索一下吧.多阅读别人的源代码,要看懂别人的设计思想,不断融为已用.
第四篇:PHP 学习笔记(二):表单:表单处理,表单验证,表单实例总结
PHP 学习笔记
(二):表单:表单处理,表单验证,表单实例
PHP 表单
PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。1 GET vs.POST
GET 和 POST 都创建数组(例如,array(key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
GET 和 POST 被视作 GET和_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域并且应该对其进行验证。如果未提交,则跳过验证并显示一个空白表单。
PHP 表单验证输入字段
从上一节中的验证规则中,我们看到 “Name”, “E-mail” 以及 “Gender” 字段是必需的。这些字段不能为空且必须在 HTML 表单中填写。
在上一节中,所有输入字段都是可选的。在下面的代码中我们增加了一些新变量:$nameErr、$emailErr、$genderErr 以及 $websiteErr。这些错误变量会保存被请求字段的错误消息。我们还为每个 $_POST 变量添加了一个 if else 语句。这条语句检查 $_POST 变量是否为空(通过 PHP empty()函数)。如果为空,则错误消息会存储于不同的错误变量中。如果不为空,则通过 test_input()函数发送用户输入数据:
$nameErr = $emailErr = $genderErr = $websiteErr = “";$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is reqwww.xiexiebang.comment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?> PHP验证 E-mail 和 URL
本节展示如何验证名字、电邮和 URL。
PHP验证 E-mail
以下代码展示的简单方法检查 e-mail 地址语法是否有效。如果无效则存储一条错误消息:
$email = test_input($_POST[”email“]);if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”无效的 email 格式!“;}
PHP验证 Name、E-mail、以及 URL
现在,脚本是这样的:
$nameErr = $emailErr = $genderErr = $websiteErr = ”“;$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is required“;
} else {
$name = test_input($_POST[”name“]);
// 检查名字是否包含字母和空格
if(!preg_match(”/^[a-zA-Z ]*$/“,$name)){
$nameErr = ”Only letters and white space allowed“;
}
}
if(empty($_POST[”email“])){
$emailErr = ”Email is required“;
} else {
$email = test_input($_POST[”email“]);
// 检查电邮地址语法是否有效
if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”Invalid email format“;
}
}
if(empty($_POST[”website“])){
$website = ”“;
} else {
$website = test_input($_POST[”website“]);
// 检查 URL 地址语言是否有效(此正则表达式同样允许 URL 中的下划线)
if(!preg_match(”/b(?:(?:https?|ftp)://|www.xiexiebang.comment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?>
接下来向您讲解如何防止表单在用户提交表单后保留输入字段中的值。
PHP-保留表单中的值
如需在用户点击提交按钮后在输入字段中显示值,我们在以下输入字段的 value 属性中增加了一小段 PHP 脚本:name、email 以及 website。在 comment 文本框字段中,我们把脚本放到了 之间。这些脚本输出 $name、$email、$website 和 $comment 变量的值。
然后,我们还需要显示选中了哪个单选按钮。对此,我们必须操作 checked 属性(而非单选按钮的 value 属性):
Name: “>
E-mail: “>
Website: “>
Comment:
Gender:
value=”female“>Female value=”male">Male
echo
第五篇:PHP学习总结的一些经验
其实我也是一样很新的新手,上PHP100学习视频并在论坛里学习其实也就是一个月前的事.虽然早在8月份花过一个星期看完w3school的PHP教 程,了解了许多PHP知识.但始终是缺乏一个与众多朋友学习和交流的平台,所以一下子在几周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100视频和论坛,不仅可以系统地学习下PHP,更可以和很多朋友一起学习成长这更是件好事.在php100视频中学到了许多,而 论坛中看帖和回帖也更让我巩固了学习的知识并让我学到了很多,这不仅不会让我又把PHP知识快速忘记(因为工作中用是ASP,而PHP不会在工作中用,所 以忘得快),反而在取得进步的同时,我也能帮助一些人,这也是一样是学习胜利的过程,我喜欢并享受其中.以下是我上论坛以来的回复总结,将不断持续总结.希望有利于与我一样的新手一起成长.首先来个,题前语:
任何的学习,都需要自信,再新的新手也应该抛弃心中的恐惧,有时关键在于你心平下来,踏入学习后,你将慢慢化开迷惑,获得信心,赢取自信!让我们共同进步.----------
==========
Undefined index问题
是运行的时候出现类似:Notice: Undefined index: action in D:wampwww.xiexiebang.com/read.php?tid=15843&page=1#138857
是 php 配置的事情
这个错误是因为 php 页面中的变量没有初始化而导致的!
可以通过设置PHP.INI搞好,也可以在变量前面 加上一个 @ 就可以解决这个地方的问题了!
如这里指示第三行
Notice: Undefined index: action in D:wampwww.xiexiebang.com/2009/0617/6463.php
----------
==========
遇到页面明确提示你错误的,并有显示如何错的,建议先把语句复制部分重点词句或全部语句到百度或
google,更快速让在你排查错误找到方法.其实这也是一种高效有益的学习方法,毕竟在工作中,遇到些没
遇过的新问题,有时都需要借助网上的资源给自己灵感和助力,本人就一天不下几十次用百度搜索.如程序中遇到诸如含提示:
显示的错误为:
Parse error: syntax error, unexpected $end in D:wampwwwtestlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作为关键词到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句举例的错误是因为:短标签没有打开.解决方法是打开php.ini把short_open_tag短标签
打开,重启服务即可
----------
==========
提示的时候,有时顺便把代码帖上帖子是必要的,这样才能快速地在别人的帮助下问题得到解决
----------
==========
对单引号和双引号有迷惑,大家可以看这篇文章解下惑:
----------
==========
在调试程序时,经常要用到echo 你的sql语句来,检查传值后,sql变成了什么样的情况,以便排查错误.----------
==========
向数据库表插入数据
INSERT INTO 语句用于向数据库表添加新纪录。
语法
INSERT INTO table_name VALUES(value1, value2,....)--此种情况是需要按你表中所有字段的顺
序全部value填上!
您还可以规定希望在其中插入数据的列:
INSERT INTO table_name(column1, column2,...)VALUES(value1, value2,....)--张老师明确建
议用此种方法!
----------
==========
有人疑惑,$_POST或$GET取得时的引号问题:其实是要不要引号,单引号或双引号都是没有问题的.如, $_POST[name]和$_POST['name']和$_POST[“name”]都是在windows下一样的,在linux下情况具体没
用过,不知道,还望高手告知.----------
==========
针对多数人的留言板课程中许多问题(如,insert into存不进数据问题)的总结:
1.检查你数据库表的结构是否正确,如id是否设为自增
2.insert into语句是否正确,如单词是否正确,insert into...values...3.是否将`(反斜点,在1键前)号和'(引号)是否使用位置正确,正确的方法是:`应该放在表和字段边,而'
是放在字符串型(或者说是非数字型)的值边上
4.检查你的各语句,是否在结尾将分号(;)正确结束
5.检查你的submit表单项的name值是否你判断的取值,如
value=“提交”>时,你的判断是否提交应是 if($_POST[submit]){...};当你的是
type=“submit” name=“othername” value=“提交”>时,你的判断是否提交应是 if($_POST
[othername]){...}
6.检查你的$_POST是否大写,当你写成$_post是不行的,因为$_GET,$_POST等,都是PHP系统环境的硬性用
法
7.用echo 输出你的sql检查传值情况
8.检查你的短标签是否打开
9.注意你的method是get还是post
10.检查你的表单相关单词或引号是否书写正确.很多莫名其妙的问题,多是细节问题.要小心查对才能看
出来.----------
sql语句中表名和字段名在windows的情况下是可以不加小斜点(键盘左上角1键前的那个点键)的,但听说
在linux中不加会引出些问题,兼容的写法是有小斜点.如:windows下:
$sql=“select * from table ”
和
$sql=“select * from `table` ”
是效果一样的再次重点提示是:
`(反斜点,在1键前)号和'(引号)使用位置,正确的方法是:`应该放在表和字段边,而'是放在字符串型(或
者说是非数字型)的值边
----------
==========
php100第十三讲的page.PHP中的翻页显示信息有问题的解决方法:
因为页面没有取值到URL值的page,所以在函数内的page会一直是1,所以会一直是第1页的数据
解决方法,就是在调用函数前把page取得就好了!函数里会把取到的page值作为全局变量传入函数使用的了!
include(“conn.php”);
$nump=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($nump);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所
以省略掉)。
$page=$_GET[page];//------------------------------在这里加入这行就OK了!
_PAGEFT($total,5);
echo $pagenav;
$query=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg ”);//---见下面 while($row=mysql_fetch_array($query)){
echo “
”.$row[name].“ | ”.$row[sex];
}
以上的调试方法,其实你只要学下张老师把sql语句输出来看下,你就知道是怎么回事了!
echo $sql=“SELECT * FROM `test` limit $firstcount,$displaypg ”;
$result=mysql_query($sql);
----------
==========
分页有问题的朋友,不妨看下如下:
关于分页,这有一篇论坛朋友的学习心得,学习下,你也许有所得:
另有一篇本人转发上去的分页讲解:
----------
==========
关于:mysql_fetch_array
mysql_fetch_array 调用一次会把指针指向的记录放入数据,并指向下一条记录
======================....回复的太多了,总结又需较多时间,暂时总结到此,总结未完,待续.....