請問怎麼做一個檢視資料庫的視窗

liuliu
edited 十月 2013 in PHP新手區
請問,我想做出一進去網頁就是有

標題|----文章內容----|日期|修改|刪除|
標題|----文章內容----|日期|修改|刪除|
標題|----文章內容----|日期|修改|刪除|
標題|----文章內容----|日期|修改|刪除|

這樣子的東西,想先請教各位如何把表格內的東西讀取到MySQL裡面抓出來?

第二就是,抓出來後如何做成超連結(文章內容那邊)?

第三,資料太多筆,我能否只先呈現5筆,超過5筆該怎麼做第二頁第三頁那個連結?

想一步一步學,先從這邊開始發問,先謝謝各位大大哩

(在線等)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4287

評論

  • liuliu
    edited 七月 2009
    表格我會..把資料抓出來是用$sql = "SELECT * FROM popo";

    這樣沒錯吧? 然後要怎麼把它放到表格內...以及做成超連結..><"?
  • edited 七月 2009
    也許把你的程式丟上來
    會比較有方向討論
  • liuliu
    edited 七月 2009
    <html>
    <head><title>校園改善提案系統</title></head>
    <body>
    <?

    include("password.php");

    $sql = "SELECT * FROM popo";



    if ( $result = mysqli_query($link, $sql) ) {
    echo "<table border=1><tr>"; // 顯示查詢結果
    while( $row = mysqli_fetch_assoc($result) ){
    echo "<td>".$row["staff"]."</td>";
    echo "<td>".$row["name"]."</td>";
    echo "<tr>";
    }
    // 釋放佔用的記憶體
    mysqli_free_result($result);
    }
    mysqli_close($link); // 關閉資料庫連結
    ?>
    </body>
    </html>



    小弟把程式改成這樣..還是參考課本才做得出來ˊˋ"..我是自學的,所以還有請勞煩各位大大們的指導..謝謝


    現在我想把$row["name"]這個欄位改成超連結..
  • edited 七月 2009
    2.
    打開google,搜尋 html 教學

    找到的第一個鏈結
    http://www.csie.nctu.edu.tw/~jglee/teacher/content.htm

    網頁內容有一個超鏈結
    http://www.csie.nctu.edu.tw/~jglee/teacher/anchor.htm
  • liuliu
    edited 七月 2009
    謝謝~我的連結是echo "<td>"."<a href='new.php'>".$row["name"]."<a>"."</td>";

    可是我想做的是
    有10筆資料 我點選第三筆連結後 能連結到第三筆資料的網頁 該怎麼做呢ˊ 我點選第三筆連結後 能連結到第三筆資料的網頁 該怎麼做呢ˊˋ"?
  • edited 七月 2009
    這邊牽扯到參數傳遞
    這部分書上一定有範例
    參數怎傳 怎接
    另外配合html的text做成文字修改
    一堆哩哩摳摳
    寫php除非你當script跑
    不然html css javascript php
    這四種是密不可分的(os另外算)
  • edited 七月 2009
    echo "<td>"."<a href='new.php?name={$row["name"]}'>".$row["name"]."<a>"."</td>";
    這樣阿...在連結裡背一個可以識別文章的get參數
    通常這參數可能是一個唯一識別碼,就像這樣topic_id=4287
    簡單講..你自己看論壇的網址列
    viewtopic.php?topic_id=4287&forum=13&post_id=15899#forumpost15899我大概分析給你看
    forum=13<--表示分類識別號碼,代表"php新手區"
    topic_id=4287<--表示主題識別號碼,代表"請問怎麼做一個檢視資料庫的視窗"
    放心..大家都是這樣玩的
  • liuliu
    edited 七月 2009
    謝 .. 我在翻書了 我懂大大的意思了 但實際上如何使用 我等等再去找資料.. 累死我 中午做到現在雖然只做出一個表格和不像樣的超連結 但獲益不少 感恩感恩^^"..(膩食去..)
  • liuliu
    edited 七月 2009
    @"..

    是不是要到資料庫裡面新增一個專門給每個不同資料的編號呢?

    AND...要怎麼寫這個"編號"

    = ="
  • edited 七月 2009
    感覺你跳太多了
    很多基礎觀念都沒有
    照著書慢慢加強自己吧
    還不會爬就想飛。。。。太超過了
  • 280280
    edited 七月 2009
    那要看你使用那種資料庫系統
    如果是使用 MySQL 的話
    當 Table 在建立時可以開一個自動 +1 的 id 欄位
    例:
    create table if not exists test_table(
    id int(10) not null auto_increment,
    primary key(id)
    );

    這個自動 +1 的欄位是系統自動編號,而且絕對不會重覆
    當你在 insert into 資料時
    這個欄位不用給他值
    這是 MySQL 的用法
    其他的資料庫系統應該也有類似的用法

    如果都不知道的話,可以自己手動 DIY 自己編這個號碼
    DIY 的話,怎麼編都可以,英文混數字也行,看你的用途而異
    通常就都數字流水號 +1
    所以資料庫系統才會有此欄位設計

    為什麼要這樣做??
    因為一筆資料的欄位很多
    也有可能某些欄位的資料內容有重覆
    所以無法辨識你要處理的是那一筆資料
    所以就要有一個欄位當資料代號來使用,而且代號絕對不能重覆

    觀念上是這樣!!
    有問題歡迎再問唄!!
  • liuliu
    edited 七月 2009
    謝謝..我成功了 我現在在做的是刪除的連結..
    <?

    include("password.php");
    $no = $_GET["id"];
    $sql = "DELETE * FROM popo WHERE id=".$no;



    if ( mysqli_query($link, $sql) ) {

    header("Location: 03.php");



    }
    mysqli_close($link); // 關閉資料庫連結

    ?>

    這樣寫對ㄇ? 執行後一片空白沒成功
  • edited 七月 2009
    星號(*)拿掉....
  • liuliu
    edited 七月 2009
    哈哈哈 不好意思啦 我剛剛比較急自己找到了 真的是*號 我自己也嚇一跳 哈哈= ="...

    我現在已經到了修改更新的地步了...就是超連結後的文章..可以顯示出有連結欄位的資料..然後UPDATE他...我這樣寫 但是甚麼都沒有出現..=.="...怎麼會這樣~可以幫我看看哪出問題了嗎

    <html>
    <head><title>校園改善提案系統</title></head>
    <body>
    <?
    if (isset($_POST["Update"])) {
    include("password.php");
    $no = $_GET["id"];
    $sql = "UPDATE popo SET staff = ".$_POST["s"].", name = ".$_POST["n"].",analysis = ".$_POST["a"].",WHERE id=".$no;



    if ( $result = mysqli_query($link, $sql) ) {

    echo "<center>"."<table width=760PX border=1><tr>";
    while( $row = mysqli_fetch_assoc($result) ){

    echo "<center>"."<input type=text name=".$row["s"]." size =25>"."</center>";
    echo "<th>"."提案時間:".$row."</th>";
    echo "</tr>"."</center>";
    echo "<center>"."<table width=760PX border=1><tr>";
    echo "<th>". $row."</th>";
    echo "<td>"."<textarea rows=10 cols=75 >".$row."</textarea>"."</td>";


    echo "</tr>"."</center>";
    }
    // 釋放佔用的記憶體
    mysqli_free_result($result);

    } }
    mysqli_close($link); // 關閉資料庫連結
    ?>
    <form action="qqedit.php" method="post">
    <input type="submit" name="Update" value="更新">
    </form>
    </body>
    </html>
  • liuliu
    edited 七月 2009
    對了執行後都會跑出
    Warning: mysqli_close() expects parameter 1 to be mysqli, null given in C:\wamp\www\work\qqedit.php on line 31


    第31行就是mysqli_close($link);

    這個怎麼了嗎 怎麼會這樣 ~但是我拿掉的話只跑出空白網頁=皿=!!!
  • liuliu
    edited 七月 2009
    我頭快爆開了= =" 以前只做過單純的用POST去更新檔案 但是現在要點連結後到所屬的文章~接著TEXT裡面要有該文章能修改..然後修改後更新完成...有沒有大大能給點方向 我知道我基礎不好~我想這因該是基礎的~可以告訴我該往哪裡去修改嗎~ˊˋ
  • edited 七月 2009
    因為if (isset($_POST["Update"]))
    這樣就是...要有post行為才會有之後的動做
    阿你點連結進來並不是post
    所以都沒動做
    連帶password.php也沒有被引入
    所以$link也不存在
    mysqli_close($link)當然就因為沒有$link給你報錯囉

  • liuliu
    edited 七月 2009
    <form action="qqedit.php" method="post">

    這個不就是了嗎><

    還是rain大是指連結的時候要改東西讓他POST到呢!?

    沒想到rain大這麼晚還沒睡 辛苦了呢=ˇ="..小弟剛爬起床撒泡尿剛好看到大大的回文 明天在奮鬥啦!!^^
  • edited 七月 2009
    簡單來講..這樣寫有點太天真了
    這是邏輯的問題,你要更新
    那更新的資料來源呢?
    <form action="qqedit.php" method="post">
    <input type="submit" name="Update" value="更新">
    </form>
    只丟出一個$_POST?
    其他欄位勒???而且問題不止如此阿..
    清單頁面(get到)->編輯頁面(post到)->更新頁面->返回或輸出一段訊息
  • 280280
    edited 七月 2009
    基本上感覺的出來,你沒有什麼寫程式的經驗!!

    PHP 與 HTML 基本觀念上是

    PHP 處理資料運算或儲存
    HTML 只負責顯示最後的結果,而且是靜態
    如果要更動任何的,顯示內容
    簡單的作法就是整頁更新

    任何資料處理基本上都脫離不了
    新增,修改,刪除

    所以!! 今天你需求的例子

    新增:產生一頁輸入物件的 HTML 頁
    修改:產生一頁輸入物件的 HTML 頁,並將修改資料帶入輸入物件
    刪除:傳遞刪除資料 id 碼給處理刪除的 PHP 檔

    觀念想法很容易懂,但怎麼實做?

    新增:純 HTML 輸入頁->然後 POST 給另一個新增的 PHP 檔
    最後再將頁面倒回新增完成訊息頁
    A.html
    <form name="form1" action="insert.php" method="post">
    <input type="text" name="TI">
    <input type="submit" value="Save">
    </form>
    insert.php
    <?
    $query="insert into temp_table ('TI') values ('".$_POST[TI]."')";
    mysql_query($query);
    ?>
    <script>location="save_ok.html";</script>
    save_ok.html
    新增完成!!

    修改:與新增差不多,差別在要將指定資料先讀出,後續處理都跟新增一樣
    最後再將頁面倒回修改完成訊息頁
    A.html
    <form name="form1" action="insert.php" method="post">
    <a href="update.php?id=資料編號">修改</a>
    </form>
    update.php
    <?
    $query="update temp_table set TI='".$_POST[TI]."' where id='".$_GET[id]."'";
    mysql_query($query);
    ?>
    <script>location="update_ok.html";</script>
    update_ok.html
    修改完成!!

    刪除:產生一個刪除連結,啟動執行刪除處理的 PHP 檔
    最後再將頁面倒回刪除完成訊息頁
    A.html
    <form name="form1" action="insert.php" method="post">
    <a href="delete.php?id=資料編號">刪除</a>
    </form>
    delete.php
    <?
    $query="delete temp_table where id='".$_GET[id]."'";
    mysql_query($query);
    ?>
    <script>location="delete_ok.html";</script>
    delete_ok.html
    刪除完成!!

    這邊你會發現到
    修改與刪除都是靠網址後面帶參數
    然後去啟動相關處理的 PHP 檔
    一般來說的處理方式都是這樣,你可以觀察這個論壇的網址就可以知道

    希望能對你有所幫助
    上面的例子有很多地方是都可以寫在同一個檔裏,不一定要分開那麼多檔
    看各人的程式寫作習慣而異
    主要是在觀念說明,其他的應用以及變化
    你可以自己嚐試看看

    PS.你每一行的 echo 建議最後最後都加個換行符號 \n
    要不 HTML 檔的原始碼閱讀會非常困難
    近而會影響到你的網頁除錯

    PS2.一開始說,你沒有什麼寫程式的經驗
    因為除了流程,邏輯不通以外,完全不會 Debug (除錯)

    要有中斷點(或說單步執行)的觀念
    以你自己寫的那段程式,怎麼知道程式有沒有跑到這一段,或跑到那??
    那就在你認為懷疑的地方
    echo 一個測試指標,或是把那一段的那一個變數值 echo 出來
    例如 echo "aaa>"; echo "bbb>".$_POST[TI];

    知道程式怎麼跑,跑到什麼地方該出現什麼值
    對於 Debug 非常的重要

    以上提供給你參考!
  • liuliu
    edited 七月 2009
    天阿~想說休息個幾天回來重新思考會有新的方向~

    但是我還是沒頭緒阿 可能真如各位大大所說我基礎太差了= =

    我只想知道為啥我的程式跑出來都沒東西= =

    唉..<html>
    <head><title>校園改善提案系統</title></head>
    <body>
    <?

    include("password.php");
    $no = $_GET["id"];
    $sql = "SELECT * FROM popo WHERE id=".$no;



    if ( $result = mysqli_query($link, $sql) ) {

    echo "<center>"."<table width=760PX border=1><tr>";
    while( $row = mysqli_fetch_assoc($result) ){
    echo "<text>"."提案時間:".$row."</text>";
    echo "<th>"."提案單位:".$row["units"]."</th>"."<th>"."<center>"."提案人員:".$row["staff"]."</center>"."</th>";

    echo "</tr>"."</center>";
    echo "<center>"."<table width=760PX border=1><tr>";
    echo "<th>". $row."</th>";
    echo "<td>"."<textarea rows=10 cols=75 >".$row."</textarea>"."</td>";
    echo "<tr>"."<td>"."粗估經費需求為:".$row."</td>"."</tr>";


    echo "</tr>"."</center>";
    }
    // 釋放佔用的記憶體
    mysqli_free_result($result);
    echo "<center>"."<table width=760px border=0>"."</center>";
    echo "<tr>"."<td>"."<center>"."<B>"."<font color=red>"."<a href=03.php>".">>返回首頁<<"."</a>"."</font>" ."</B>"."</td>"."</tr>"."</center>" ;
    }
    mysqli_close($link); // 關閉資料庫連結
    ?>

    </body>
    </html>


    這是我呈現資料的程式~成功的執行了~


    但是我把$SQL改成UPDATE後就掛了...連畫面都沒

  • 280280
    edited 七月 2009
    你的 update 應該是語法的問題
    就說在你懷疑的地方把值 echo 出來看看

    連畫面都沒有,著個問題無法解答
    你必需提供更多的訊息讓我們判斷

    或是照我所說的測試步驟一個一個去試
    然後把試後的結果告訴我們
    才能跟你說問題在那
    因為你是在單機上跑,我們無法看到你的執行結果

    錯誤訊息很重要!!

    連畫面都沒是啥??
    有錯誤訊息,只是不是你要的結果
    還是整頁空白,看原始檔也都空白沒內容?

    我想你可能要先整理一下要怎麼問問題
    我們才能幫助你!!
  • liuliu
    edited 七月 2009
    $no = $_GET["id"];

    $sql = "UPDATE popo SET analysis='".$_POST["a"]."'WHERE id=".$no;

    這是我改SQL指令的地方 我想先從一個analysis(就是我的文章內容)開始改

    其實我腦袋現在已經塞報了= =" 不知道怎麼去做

    我想請教的是

    要怎麼用id這種連結,先把所選的文章跑出來在TEXT裡面,然後我在修改

    是不是需要用到

    $sql = "SELECT * FROM popo WHERE id=".$no;

    這樣的方法~然後再做一個

    $sql2 = "UPDATE popo SET analysis='".$_POST["a"]."'WHERE id=".$no;

    然後一起使用呢??


    ps.不好意思~希望這樣問會比較讓大家明瞭= =" 小弟腦袋開始怪怪低哩
  • edited 七月 2009
    唉...
    <?php ob_start(); ?>
    <html>
    <head><title>校園改善提案系統</title></head>
    <body>
    <?php
    include("password.php");//一開始就引入,因為一定會用到
    if (isset($_POST["Update"]))
    {
       $sql = "UPDATE popo SET staff ='{$_POST["staff"]}', name ='{$_POST["name"]}',analysis ='{$_POST["analysis"]}' WHERE id='{$_GET['id']}';";
       if(mysqli_query($link,$sql))
       {
          echo 'update ok';
          exit;
       }
       else
       {
          echo 'query error';
          exit;
       }
    }
    else
    {
       $sql="SELECT * FROM popo WHERE id='{$_GET['id']}';";
       if ( $result = mysqli_query($link, $sql) )//一個關念,query成功執行不代表有資料,有時可能是空資料集
       {
           if(mysqli_num_rows($result)>0)//取資料的列數,大於1才表示有資料
           {
               echo '<form action="qqedit.php" method="post">';//這邊就要丟出表單了
               echo "<center><table width=760PX border=1>";//有資料才開使出表格
               echo "<center><tr><th>提案時間:{$row['date']}</th></tr></center>";
               $row = mysqli_fetch_assoc($result);//省略迴圈,邏輯上應該會是唯一一筆資料 
               echo "<center><input type=text name='staff' value='{$row['staff']}' size='25'></center>";//這裡要用value屬性
               echo "<center><input type=text name='name' value='{$row['name']}' size='25'></center>";
               echo "<tr><textarea rows=10 cols=75 name='analysis'>{$row['analysis']}</textarea></tr>";
               echo '<tr><input type="submit" name="Update" value="更新"></tr></table></form>'; 
           }
           else
           {
               echo 'query ok,data rows=0';
           }
       }
       else
       {
           echo 'query error';
       }
    }
    // 釋放佔用的記憶體 
    mysqli_free_result($result); 
    mysqli_close($link); // 關閉資料庫連結
    ?>
    </body>
    </html>
    
    自己比較,然後看看差別有多少
    提示,去了解php跟html之間是怎麼交換參數的
  • liuliu
    edited 七月 2009
    請問開頭這段<?php ob_start(); ?> 是什麼意思啊?

    AND...是不是可以不用PHP那三個字呢? 就是<?PHP 的PHP這三個字

    AND...echo 'update ok';
    exit;




    @"

    但是會執行'update ok',資料卻沒變更耶

    比較~我有學到一點就是一個變數可以宣告兩次不同的指令= ="

    很基本~但是今天學到了,謝謝^^"..(笨= =)

    AND...原來
    "<center><tr><th>提案時間:{$row}</th></tr></center>";

    這樣寫就可以了..我以為在<center>這個語法和別的語法要用逗點來連結

    以及value的用法..value='{$row}'

    這些都是本來不知道的

    順便請問就是

    如果寫在PHP以外的HTML那 我能不能寫

    <td><input type="text" name="n" size="25" value="{$row}"></td>

    像這樣?

    RAIN大的寫法是否是一開始先將資料更新~否則sql指令改變成呈現資料的~下面那段把所選的資料顯示出來~

    但我想請問~update為啥要寫在IF後面 如果更新成功則顯示echo 'update ok';

    那位啥一開始能先顯示資料呢~是不是因為沒有更新所以先跳到else的下面的程式~~是因為這樣嗎?


    @" 不然我會不好意思低><
  • 280280
    edited 七月 2009
    1.ob_start(); 打開顯示緩衝區 <-不使用也可以

    2.可以直接就 <??> 不用 php 這三個字

    3.exit <- 結束程序,也就是程式執行到這停止,不會繼續跑下去

    4.有 update ok 但資料沒變更
    請問你有給他 id 值嗎?

    SoltyRain 大的程式,是同一個檔案,分上下兩塊
    上面處理 update 資料
    下面處理 要修改資料的顯示

    SoltyRain 大只少代了一個參數
    echo '<form action="qqedit.php" method="post">';//
    他要把 id 傳過去
    echo '<form action="qqedit.php?id={$_GET}" method="post">';
    因為沒傳過去所以沒更新
    程式邏輯你要了解一下

    qqedit.php 是自己本身也就是同一個檔

    PS.顯示跟 update 資料都是在同一個檔,也就是把值自己傳給自己

    5.如果 HTML 碼在 php 的符號內,也就是 <??> 內
    就要使用 echo 輸出顯示
    如果要在 HTML 碼中,只顯示 php 的變數值
    需要把那個變數名稱用 <??> 框起來

    你舉的例子
    <td><input type="text" name="n" size="25" value="{$row}"></td>
    HTML 碼顯示 php 的值
    <td><input type="text" name="n" size="25" value="<?=$row?>"></td>
    或是 php 程式內輸出 HTML 碼
    <?
    echo '<td><input type="text" name="n" size="25" value="{$row}"></td>';
    ?>
    兩種寫法都可,看你的寫作習慣

    6.這個程式執行的流程是
    先顯示要修改的資料內容
    按更新之後
    才會去 update 資料

    重點在這
    if (isset($_POST["Update"]))

    Update 這個變數的值
    就是-->更新<--這個按鈕
    也就是說

    第一次執行時
    不可能有人按更新鈕
    所以 Update 一定是空的(isset()<-變數是否存在)
    所以 會先去跑顯示修改的資料

    當你按了更新鈕
    Update 的值就是 -->更新<-- 這兩個字
    所以 Update 存在(isset()<-變數是否存在)
    所以去更新資料!
  • liuliu
    edited 七月 2009
    soga..280大的講解很清楚~感恩,可是<form action="qqedit.php?id={$_GET}" method="post">

    這段給他id位置後~執行結果是
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\work\qqedit.php on line 28

    上網google了一下~我程式裡面沒有許功蓋之類的字阿~ :-?

    還是說我另一邊連結的網頁寫的方法錯了呢?


    <html>
    <head><title>校園改善提案系統</title></head>
    <body>

    <?

    include("password.php");

    $sql = "SELECT * FROM popo ";



    if ( $result = mysqli_query($link, $sql) ) {


    echo "<center>"."<table width=760px border=1><tr>";
    while( $row = mysqli_fetch_assoc($result) ){


    echo "<td>"."<center>"."提案人員:".$row["staff"]."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqshow.php?id={$row["id"]}'>".$row["name"]."<a>"."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqbdel.php?id={$row["id"]}'>"."刪除"."<a>"."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqedit.php?id={$row["id"]}'>"."修改"."<a>"."</center>"."</td>"."</tr>";

    echo "</center>";

    }

    echo "<center>"."<table width=760px border=0>"."</center>";
    echo "<tr>"."<td>"."<center>"."<B>"."<font color=blue>"."<a href=new.php>".">>新增一筆資料<<"."</a>"."</font>" ."</B>"."</td>"."</tr>"."</center>" ;
    // 釋放佔用的記憶體
    mysqli_free_result($result);
    echo "<hr>";
    }

    mysqli_close($link); // 關閉資料庫連結
    ?>

    </body>

    </html>


    @..就是從這邊連結到修改"的地方
    echo "<td>"."<center>"."<a href='qqedit.php?id={$row["id"]}'>"."修改"."<a>"."</center>"."</td>"."</tr>";




    順便請問一下要怎麼用像rain大的那個留言視窗來放程式碼= ="

    @"
  • edited 七月 2009
    echo '<form action="qqedit.php" method="post">';
    改成
    echo "<form action='qqedit.php?id={$_GET}' method='post'>";
    雖然你看我一直在echo中直接用大括號代變數進去...但你似乎不了解單雙引號的不同
    [code]程式碼
    
    [/code]包住
  • 280280
    edited 七月 2009
    php 的字串與變數組合使用方式
    就個人的經驗說明,並非純正的規則
    因為我也不知道真正的規則是什麼

    字串使用 單引號 或 雙引號 括起來,對 php 來說不一樣

    用 單引號 括起來,表示都是字串資料內容
    用 雙引號 括起來,反之就不是(此時屬於什麼我也不知道)

    以你的例子說明你就可以清楚了解其中的差異

    先外插一下

    echo "<td>"."<center>"."提案人員:".$row["staff"]."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqshow.php?id={$row["id"]}'>".$row["name"]."<a>"."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqbdel.php?id={$row["id"]}'>"."刪除"."<a>"."</center>"."</td>";
    echo "<td>"."<center>"."<a href='qqedit.php?id={$row["id"]}'>"."修改"."<a>"."</center>"."</td>"."</tr>";

    這樣的寫法,會照成閱讀的困難
    一般來說,HTML 碼的部份都會直接寫,不會使用 . 做字串連接

    echo "<td><center>提案人員:".$row["staff"]."</center></td>";
    echo "<td><center><a href='qqshow.php?id={$row["id"]}'>".$row["name"]."<a></center></td>";
    echo "<td><center><a href='qqbdel.php?id={$row["id"]}'>刪除<a></center></td>";
    echo "<td><center><a href='qqedit.php?id={$row["id"]}'>修改<a></center></td></tr>";

    甚至你可以寫成這樣,只有一個 echo 直接換行,這是可以被接受的

    echo "<td><center>提案人員:".$row["staff"]."</center></td>
    <td><center><a href='qqshow.php?id={$row["id"]}'>".$row["name"]."<a></center></td>
    <td><center><a href='qqbdel.php?id={$row["id"]}'>刪除<a></center></td>
    <td><center><a href='qqedit.php?id={$row["id"]}'>修改<a></center></td></tr>";

    PS.只有最後一行有結尾符號 ";

    回到主題 單引號 跟 雙引號的差異
    取其中一行來說

    echo "<td><center><a href='qqshow.php?id=".$row["id"]."'>".$row["name"]."<a></center></td>";

    我想因為 SoltyRain 大,常看到新手會這樣使用字串與變數組合的方式
    所以才會建議新手使用,大括弧將變數框起來,不用使用 . 字串連結

    echo "<td><center><a href='qqshow.php?id={$row["id"]}'>{$row["name"]}<a></center></td>";

    但以我個人的使用經驗來說
    在 雙引號 之下的變數,連大括弧都不用,這是可被接受的

    echo "<td><center><a href='qqshow.php?id=$row["id"]'>$row["name"]<a></center></td>";

    PS.這樣的用法,如果是多維陣列,會出現錯誤
    因為我是到這論壇,才第一次看到 SoltyRain 大的這種用法
    不知道多維陣列,適不適用

    但如果是使用 單引號 括起整個字串
    這個用法就不行,也就是你遇到的問題

    -->他會直接當字串文字內容輸出,並不會把變數值帶入<--

    如果要使用 單引號 的用法,就必須要使用 . 將字串組合起來

    echo '<td><center><a href="qqshow.php?id='.$row["id"].'">'.$row["name"].'<a></center></td>';

    差異在這個地方
    至於什麼時候要使用 單引號 還是 雙引號
    看個人的寫程式習慣,都可接受
  • edited 七月 2009
    其實有很多基礎的東西,這樣東教一點,西教一點,似乎不是辦法?
    不過自學的話...就是如此吧...
    如果你確實想學好php,而手頭又不緊的話
    或許可以去報名kiang老師的課程(笑
    http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4272&forum=19&post_id=16000
    聽說被當成詐騙集團?誰知道呢?
  • liuliu
    edited 七月 2009
    @"
    
    離題哩@"
    
    小弟先回北部休息個幾天囉,謝謝280大和rain大的寶貴意見^^,真的!!
    
    
    
Sign In or Register to comment.