、どうもありがとうございました。 厳しい基準はありません。
初心者であれば、各アクションのファイルが分かりやすくなることがあります。だから、それに行きなさい。
より多くの経験をすると、すべてのアクションを1つのファイルにまとめると、コードが短く便利になります。
あなたは別のファイルに持っていなければならないものは、フォームそのものです。
新しいレコードの追加、既存のレコードの編集、送信エラーの表示に同じフォームを使用することができます。
ここでは、1ページャーの例を示します。それは削除されませんが、あなたに一般的な考えを与えることができます。 レコードを追加、編集、参照することができます。
コード
<?
mysql_connect();
mysql_select_db("new");
$table = "test";
if($_SERVER['REQUEST_METHOD']=='POST') { //form handler part:
$name = mysql_real_escape_string($_POST['name']);
if ($id = intval($_POST['id'])) {
$query="UPDATE $table SET name='$name' WHERE id=$id";
} else {
$query="INSERT INTO $table SET name='$name'";
}
mysql_query($query) or trigger_error(mysql_error()." in ".$query);
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
if (!isset($_GET['id'])) { //listing part:
$LIST=array();
$query="SELECT * FROM $table";
$res=mysql_query($query);
while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
include 'list.php';
} else { // form displaying part:
if ($id=intval($_GET['id'])) {
$query="SELECT * FROM $table WHERE id=$id";
$res=mysql_query($query);
$row=mysql_fetch_assoc($res);
foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);
} else {
$row['name']='';
$row['id']=0;
}
include 'form.php';
}
?>
テンプレート form.php
<? include TPL_TOP ?>
<form method="POST">
<input type="text" name="name" value="<?=$row['name']?>"><br>
<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="submit"><br>
<a href="?">Return to the list</a>
</form>
<? include TPL_BOTTOM ?>
と
<? include TPL_TOP ?>
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>
<? include TPL_BOTTOM ?>
母、トウシュ、SIR list.php。 – rdlowrey
この行の目的は何ですか? '($ _ SERVER [' REQUEST_METHOD '] ==' POST ')' また、送信ボタンに値を与えて、 'if(!isset($ _ POST [' submitvalue '])) –
@Evan優れた質問。 1.すべてのコードを1つのファイルにまとめているので、このスクリプトに対する通常の呼び出しと、フォームアクションとして機能するときの呼び出しを区別する必要があります。したがって、この行は後者の行に使用されます。私は行動を区別するためにちょうどidを使用しています。 id = 0の場合 - add、idが正の数の場合 - それは編集です。ただし、削除するにはこのようなフィールドが必要です。 idとして値を持つ "delete"という名前の隠しフォームフィールドが好きです。 –