熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

從入門到精通---初學PHP 和 MySQL 三

2013-11-15 12:23:14  來源: PHP編程 

  注意我在腳本中所作的注釋使用一個注釋可以用//服務器將忽略此行的後面部分
  簡單不是嗎?從數據庫中編輯一條記錄讓我們假設一下我們想修改數據庫中存在的記錄在前面我們看到有一個叫set的SQL命令用來設置 數據庫中存在字段的值我們將使用這個命令來修改數據庫中的整條記錄考慮下面的腳本
  
  editphp:
  <html>
  <head><title>Editing an entry from the database</title>
  </head>
  <body bgcolor=#ffffff>
  <h>Edit an entry</h
  <?
  mysql_connect() or die (Problem connecting to DataBase);
  $query = select * from tbl;
  $result = mysql_db_query(example $query);
  if ($result)
  {
  echo Found these entries in the database:<br>;
  echo <table width=% align=center border=><tr>
  <td align=center bgcolor=#ffff>idx</td>
  <td align=center bgcolor=#FFFF>User Name</td>
  <td align=center bgcolor=#FFFF>Last Name</td>
  <td align=center bgcolor=#FFFF>Free Text</td>
  </tr>;
  while ($r = mysql_fetch_array($result))
  {
  $idx = $r[idx];
  $user = $r[UserName];
  $last = $r[LastName];
  $text = $r[FreeText];
  echo <tr>
  <td align=center>
  <a href=\editingphp?idx=$idx&user=$user&last=$last&text=$text\>$idx</a></td>
  <td>$user</td>
  <td>$last</td>
  <td>$text</td>
  </tr>;
  }
  echo </table>;
  }
  else
  {
  echo No data;
  }
  mysql_free_result($result);
  include (linksx);
  ?>
  </body>
  </html>
  如你所見這裡的代碼有些熟悉第一部分只是打印出數據庫中表的內容注意有一行不太一樣
  <a href=\editingphp?idx=$idx&user=$user&last=$last&text=$text\>$idx</a>
  這一行建立了一個到editingphp的一個鏈接並且給新的腳本傳遞了一些變量同表單方式很象只 是使用的是鏈接我們將信息轉換成變量和值注意為了打印出 符號我們需要使用 \否則服務器 將把它看成PHP腳本的一部分並且作為被打印的信息
  我們想將數據庫中的記錄全部轉換到過這樣我們就可以得到表中的確切的數據以便我們修改它容易 一些
  
  Editingphp:
  <html>
  <head><title>Editing an entry</title>
  </head>
  <body bgcolor=#ffffff>
  <h>Editing an entry</h>
  <form method=post action=editdbphp>
  <table width=% align=center>
  <tr><td>idx:</td><td><?php echo $idx;?></td></tr>
  <tr><td>UserName:</td><td><input type=text name=UserName size= maxlength=
  value=<?php echo $user;?>></td></tr>
  <tr><td>LastName:</td><td><input type=text name=LastName size= maxlength=
  value=<?php echo $last;?>></td></tr>
  <tr><td>Free Text:</td><td><input type=text name=FreeText size= maxlength=
  value=<?php echo $text;?>></td></tr>
  <tr><td></td><td><input type=submit value=Edit it!></td></tr></table>
  <input type=hidden name=idx value=<?php echo $idx;?>>
  </form>
  <?php include (linksx);?>
  </body>
  </html>
  
  好這個腳本很簡單我們要關心的是當表單打印出來時它記錄了當前記錄的數據通過在 <input type= > 命令中的value屬性這些數據是從前一個頁面傳遞過來的
  現在如果我們不改變記錄的信息它將傳回當前值即缺省值如果我們改變了字段的值字段的值 將變成新的值接著我們可以將新值傳給另一個腳本它將會改變MySQL表中的值
  
  editdbphp:
  <?php
  mysql_connect() or die (Problem connecting to DataBase);
  $query = update tbl set
  idx=$idxUserName=$UserNameLastName=$LastNameFreeText=$FreeText where
  idx=$idx;
  $result = mysql_db_query(example $query);
  $query = SELECT * FROM tbl;
  $result = mysql_db_query(example $query);
  if ($result)
  {
  echo Found these entries in the database:<br><p></p>;
  echo <table width=% align=center border=><tr>
  <td align=center bgcolor=#FFFF>idx</td>
  <td align=center bgcolor=#FFFF>User Name</td>
  <td align=center bgcolor=#FFFF>Last Name</td>
  <td align=center bgcolor=#FFFF>Free Text</td>
  </tr>;
  while ($r = mysql_fetch_array($result))
  {
  $idx = $r[idx];
  $user = $r[UserName];
  $last = $r[LastName];
  $text = $r[FreeText];
  echo <tr>
  <td>$idx</td>
  <td>$user</td>
  <td>$last</td>
  <td>$text</td>
  </tr>;
  }
  echo </table>;
  }
  else
  {
  echo No data;
  }
  mysql_free_result($result);
  
  include (linksx);
  ?>
  基本上要關心的一件事情是下面一行
  $query = update tbl set idx=$idxUserName=$UserNameLastName=$LastNameFreeText=$FreeText where idx=$idx;
  注意它與我們在前面MySQL部分解釋的語法相同另一件事注意這個腳本改變的是idx=$idx的記錄 如果表中有多條idx等於$idx的記錄所以這些記錄都將被改變如果我們想更嚴格一些我們可以象下面 改動一下where子句
  $query = update tbl set idx=$idxUserName=$UserName LastName=$LastNameFreeText=$FreeText where idx=$idx and UserName=$UserName and LastName=$LastName and FreeText=$FreeText;
  這個語法將檢查所有的字段而不僅僅是檢查idx
  從數據庫中刪除一條記錄
  好刪除很容易我們仍然需要兩個腳本一個用來選擇要刪除的記錄(基本上同上面選擇要編輯的記 錄一樣)一個用來真正地進行刪除和打印新的表格
  
  delphp:
  <html>
  <head><title>Deleting an entry from the database</title>
  </head>
  <body bgcolor=#ffffff>
  <h>Del an entry</h>
  <?
  mysql_connect() or die (Problem connecting to DataBase);
  $query = select * from tbl;
  $result = mysql_db_query(example $query);
  if ($result)
  {
  echo Found these entries in the database:<br><p></p>;
  echo <table width=% align=center border=><tr>
  <td align=center bgcolor=#ffff>idx</td>
  <td align=center bgcolor=#FFFF>User Name</td>
  <td align=center bgcolor=#FFFF>Last Name</td>
  <td align=center bgcolor=#FFFF>Free Text</td>
  </tr>;
  while ($r = mysql_fetch_array($result))
  {
  $idx = $r[idx];
  $user = $r[UserName];
  $last = $r[LastName];
  $text = $r[FreeText];
  echo <tr>
  <td align=center>
  <a href=\delephp?
  idx=$idx&UserName=$user&LastName=$last&FreeText=$text\>$idx</a></td>
  <td>$user</td>
  <td>$last</td>
  <td>$dtext</td>
  </tr>;
  }
  echo </table>;
  }
  else
  {
  echo No data;
  }
  mysql_free_result($result);
  include (linksx);
  ?>
  </body>
  </html>
  
  這個腳本與我們用過的編輯腳本很象所以可以看一下那裡的說明delephp:
  
From:http://tw.wingwit.com/Article/program/PHP/201311/20850.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.