顯示廣告
隱藏 ✕
※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2013-08-26 10:08:29
看板 PHP
作者 rickysu (Ricky)
標題 Re: [請益] 用迴圈跑出報名表
時間 Fri Aug 16 09:28:04 2013


幫你把 Code 整理一下吧...
順便把一些壞習慣改掉

※ 引述《youngwei (mooncolor)》之銘言:
: 用迴圈跑出報名表,報名表數量根據資料庫裡同一個人有2筆資料就跑出2個
: 顯示出來後有2個報明表,但填完第一個報名表後要填第二個報名表時,
: 第一個報名表填完的資料就消失,想請問各位問題出在哪裡?
: 以下是我的編碼

<?php
//sql injection
$str="select paperid,papername,paperman from paperinf where id='".((int)$id)."'";
$row=mysql_query($str,$link);
$result=mysql_num_rows($row);
?>
<form action="appli_ok.php" method="post" id="form1">
    <p align="center" style="font-size:20px" colspan="2" class="payw1">報名表</p>
    <?php for ($i=0;$i<$result;$i++):?>
    <?php $po = mysql_fetch_assoc($row)?>
    <table border="0" align="center" class="payw1">
        <tr>
            <td width="300">編號:&nbsp;&nbsp;  <?=$po['paperid']?></td>
        </tr>
        <tr>
            <td>名稱:&nbsp;&nbsp;  <?=$po['papername']?></td>
        </tr>
        <tr>
            <td>出席者:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="text" name="paperman" height="20"
                   value="<?=$po['paperman']?>">
            </td>
        </tr>
        <tr>
            <td>用餐情況:&nbsp;&nbsp;
               <input type="radio" name="food"  value="葷" checked="checked">葷
               <input type="radio" name="food"  value="素">素
            </td>
        </tr>
        <tr>
            <td align="center" colspan="2">
               <input name="" type="submit" value="報名"></td>
        </tr>
        </table>
        <?php endforeach?>
</form>
後面實在看不懂要怎麼改了,沒有結尾</tr>, 這就請原 po 自己解釋吧。
html 結構錯誤...

================== 我是分隔線 ================
雖然 PHP 本身就是個樣本引擎,但請盡量不要將 HTML 與程式混雜。
如果非不得已,必須這麼做時,請盡量使用 PHP 的樣板語法,這樣會讓你的 HTML 結構
更清楚。

1. 請不要使用 short open tag。 這會跟  <?xml ?> 打架。
   請乖乖的使用 <?php // your code ?>
2. <?php echo $var;?> -> <?=$var?> 在 php 5.4 以後, echo 的 short tag
   都是打開的狀態,無法關閉。也就是說官方鼓勵大家盡量使用 <?=$var?> 這樣的格式
3. 少用 <?php if(xxx){?>...<?php }?> 這類大括號的語法
   請使用
   <?php if(xxx):?>
    html
   <?php else:?>
    html
   <?php endif?>

   <?php for(xxx):?>
    html
   <?php endfor?>

   <?php while():?>
    html
   <?php endwhile?>
4. 在 php 中結尾的;如果接著 close tag 分號可以省略
   <?php $foo = "test";?>  ->  <?php $foo = "123" ?>
5. 請保持縮排,html 是有巢狀結構的。

掌握這幾個原則,至少讓人可以很清楚的一眼望去就可以了解哪些是 html 哪些是 PHP。
PS: html 跟 PHP 混雜真的是個很糟糕的寫法(大家戲稱這種寫法叫義大利麵)。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.136.115
tkdmaf:你能相信幾乎沒有一本中文PHP的書會提這些事......1F 08/16 10:09
rickysu:一直很懷疑這些寫書的作者他們真的有實際了解過PHP嗎??2F 08/16 10:59
youngwei:謝謝你的指導  本人最近才接觸很多細節不是很清楚3F 08/16 11:58
tkdmaf:有很多PHP的書根本不是站在程式設計的角度在寫的說。4F 08/16 15:38

--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 1317 
※ 文章分類: PHP
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇