首页 > 代码库 > web系列教程之php 与mysql 动态网站 。检索 与更新。

web系列教程之php 与mysql 动态网站 。检索 与更新。

   接着上次WEb 系列开发之php 与mysql动态网站入门。

  个人觉得,学习技术就像一棵大树,主干很重要,枝叶其次。对于学习技术,我们应该分清主次关系。怎么学?为什么要学?有一个较好的分寸。

有时候觉得 国内有些教育,从一开始就从枝叶 细节说的很清楚。说了一大堆,就是很散的感觉,虽然有很多知识。但是学的人呢,并不清楚这个的实际应用,

这样会导致学习兴趣的缺失。个人觉得 就比如 php 和mysql吧,虽然我也不是高手,但就学习上面还是能评论几句的,比如我从表单开始 讲表单的注册,也就是

网站会员注册的部分。我从最简单的部分开始,然后尽量精简代码,一些细枝末节就可以暂时忽略(比如表单的错误处理,判断,还有完整的功能) ,这些不是不重要,

而是在开发的过程中,对于我们学这个的人,先了解一下所有的交互,后面写好表单,也能注册。恩,学的人感觉很爽,恩,然后讲解了web 的整个部分。一个很大的

轮廓就出来了,然后对于学习的人,自学的热情也会上涨,就知道自己因何去学。然后也能看点代码了,虽然还是新手。这样就已经慢慢去了解整个的开发过程了。然后也可以

吹吹牛逼说能一个人开发网站了。是个不错的感觉。

  比如表单,学的人后面发现,注册的时候,可能需要判断,如果错误了肿么办,注册的时候会不会有重合等等这些问题。然后想:“恩,这确实是个问题。看来我得着手处理这个问题了,这样才让我的网站没有漏洞以至于变得完美。”后面又觉得表单是不是要漂亮一点,然后学习了点css css3.然后重新拾起php语言的书,mysql语言的书进行更深入的学习,以至于开始的东西变得越来越好,稳定性越来越强,速度越来越快,这些都是枝叶。所有初学者,需要的就是主干的学习,枝叶的渗透的项目或者自己写代码体会的。

   当然,我后面也会写完整的网站开发过程,当然都是初级阶段,比如python采集,工具辅助,使用开源代码,简单的css javascript等等鼓捣出漂亮的网页。开始虽然没什么技术含量,但一个人得到了制作产品的满足感后,潜力是无穷的。虽然有时候copy人家的样式,这样对自己的学习不利,但是对于开始学习技术觉得枯燥的同学,比如在校的学生,做网页的时候,鼓捣不出漂亮的网页肿么办,慢慢学? 现在年轻人很浮躁的,你懂的。 直接看看知名的网站,样式不错,copy过来。加入到网站中,不错的感觉,然后,通过经常使用Firefox chrome的插件看代码,对于常见的html css 知道的也就不少了,然后通过进一步的学习,发现者里面东西真不少,后面激情大增。待续。。


 

  在上次中,我从 html 表单讲解开始,从一个静态的html表单开始,然后结合数据库。展现了表单和数据库的连接。简单说明了一下 表单和数据库的交互。还是表单的交互比较清晰呀。哈哈。貌似我们已经学习了网站的注册部分,虽然就三个框呀。不过这就是雏形。

  然后我们网站有时候还有后台呢,看看哪些人注册了呢。有时候 人家信息还要修改呢?恩,这是个问题,我得着手这些问题了。当然我这是个人写的教程,就接地气一点了。

  人家百行的代码 我就用10几行讲解一下就行了,主干嘛。后面会全部详细的加上的,不过暂时不是我们的主题呀。

上次说注册部分。就谈了数据库的三个量 first_name second_name age 这三个。这一次就要用表单修改已经注册用户的age 了。

也就是说 确定 first_name second_name ,然后修改 age 。以后完整的注册 修改 内容更多,当然主要还是要有密码的。这个类比下。

接着上次我们在根目录下建造一个 password.php 文件。

<?include(‘includes/header.html‘);echo ‘<p>change</p>‘;$error=array();if (empty($_REQUEST[‘first_name‘])) {    echo ‘<p>you forget type your first_name;<p>‘ ;# code...    $error=‘1‘;}else{    $f=$_REQUEST[‘first_name‘];}if (empty($_REQUEST[‘second_name‘])) {    echo ‘<p>you forget type your second_name;<p>‘ ;# code...    $error=‘2‘;}else{    $s=$_REQUEST[‘second_name‘];}if (empty($_REQUEST[‘age‘])) {    echo ‘<p>you forget type your age;<p>‘; # code...    $error=‘3‘;}else{    $a=$_REQUEST[‘age‘];}if (empty($error)) {    echo‘<p> everything is ok<p>‘;# code...    require(‘connect/mysqli_connect.php‘);    $q="update user set age=‘$a‘ where (first_name=‘$f‘ and second_name=‘$s‘)" ;    $r=@mysqli_query($dbc,$q);    mysqli_close($dbc);     //上次没说,其实准备后面说的。就是连接数据库后要断开连接呀,不过php代码运行到最后也会断的。不过养好好习惯嘛。    exit();     // 然后由此打断,提交后,修改成功,后面的表单就不要出来了嘛。}?><form action=‘password.php‘ method=‘POST‘><p>please type your first name:<input type="text" name="first_name" value="http://www.mamicode.com/<? if(isset($_REQUEST[‘first_name‘])) echo $_REQUEST[‘first_name‘];?>"></p><p>please type your second name:<input type="text" name="second_name" value="http://www.mamicode.com/<? if(isset($_REQUEST[‘first_name‘])) echo $_REQUEST[‘second_name‘];?>" ></p><p>please type your age:<input type="text" name="age" value="http://www.mamicode.com/<? if(isset($_REQUEST[‘age‘])) echo $_REQUEST[‘age‘];?>"></p><p><input type="submit" name=‘submit‘ value=http://www.mamicode.com/‘change‘>

>

  看着这个表单,其实啊和上次说的注册变化在哪呢?

$q="update user set age=‘$a‘ where (first_name=‘$f‘ and second_name=‘$s‘)" ;

  只有这一句,主要还是数据呀,数据库的 更新呀,看来修改信息就改一个数据库语言就够了。后面这个就断一下,写个 mysql 语言的基础部分吧。其实我看着就像

  看英文句子一样一样的呀。updat user set 更新 user 表 然后设置  后面就是什么设置什么内容了。 where 对它限定一下嘛。first_name second_name 在数据库中找到这个

匹配的信息。然后就是修改了age数据了. 还有

<form action=‘password.php‘ method=‘POST‘>

  action 的部分要改成 password.php 提交给它的。这个不一样,就这两个地方不一样了。
啊哈。后面呢。说说注册用户的检索吧。就是看看有哪些用户注册了。就拿主要的部分了。
view_user.php
<?require(‘connect/mysqli_connect.php‘);$q="select concat(second_name,‘,‘,first_name) as name from user order by name";$r=@mysqli_query($dbc,$q); // mysqli_query() need connect the database;echo "<table><tr><td>name</td></tr>";while($row=mysqli_fetch_array($r,MYSQLI_ASSOC)){    echo "<tr><td>".$row["name"]."</td></tr>";}echo "</table>";?>
  很简短的语句吧。我省了很多。
前面就不说了。
select concat(second_name,,,first_name) as name from user order by name

这就涉及数据语言了。后面说写个文章 简单谈谈。  写英文句子一样一样的。

  select 选择 second_name first_name 的组合 as 作为name 表示 。name 就作为他们的新表示方法了。后面就用name 了呀。来自于 user 表 由名字排序。

里面 concat () 函数 就是连接那两个东东的。中间加一个 “ ,” 

  前面部分就不说了.后面又来了一个 <table ><tr><td></td></tr></table>这就是列表的结构了。后面也写篇文章最简单的 写下 html.

这个列表就是展示检索出来的用户了。

while($row=mysqli_fetch_array($r,MYSQLI_ASSOC)){   } 

上面这个函数很重要的。就是执行完检索后,
mysqli_fetch_array($r,MYSQLI_ASSOC))
  MYSQLI_ASSOC是这个函数后面的可选参数,可以有MYSQLI_NUM MYSQLI_BOTH
我们用的就是这种格式$row["name"]
  MYSQLI_NUM 就是$row[0]这种格式 不同的数组一样一样的。BOTH 就是都可以啦。
这个函数每次返回一行,我们要一行一行的输出。然后就用 while了。 

echo "<tr><td>".$row["name"]."</td></tr>";

中间就是每次输出的变量了。就是 name 了。

然后就检索 检索 出来一堆 。出来一堆啊。。 。。

后面还有分页呢。 哈哈 ~~