Yourock
ты ищешь оптимизацию кода не там, где надо.
оптимизировать надо то, что реально тормозит, а не там, где тебе буйная фантазия подсказывает.
об оптимизации тут речь вообще не может идти.
только об удобстве разработки.
несколько страниц (типа news_show.php, news_add.php, news_edit.php) - делать ОЧЕНЬ неудобно.
особенно - если учесть, что news_add.php и news_edit.php - это практически один и тот же скрипт.
вот пример простого и компактного кода, раклизующего основной функционал БД - форма + таблица.
Всё росто и компактно
<?
mysql_connect();
mysql_select_db("new");
$table="test";
if($_SERVER[\'REQUEST_METHOD\']==\'POST\') {
if ($id=intval($_POST[\'id\'])) {
$query="UPDATE $table SET name=\'".mysql_real_escape_string($_POST[\'name\'])."\' WHERE id=$id";
} else {
$query="INSERT INTO $table SET name=\'".mysql_real_escape_string($_POST[\'name\'])."\'";
}
mysql_query($query);
header("Location: http://".$_SERVER[\'HTTP_HOST\'].$_SERVER[\'PHP_SELF\']);
exit;
}
if (!isset($_GET[\'id\'])) {
$LIST=array();
$query="SELECT * FROM $table";
$res=mysql_query($query);
while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
include \'list.php\';
} else {
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
<form method="POST">
<input type="text" name="name" value="<?=$row[\'name\']?>">
<input type="hidden" name="id" value="<?=$row[\'id\']?>">
<input type="submit">
<a href="?">Return to the list</a>
</form>
list.php
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row[\'id\']?>"><?=$row[\'name\']?></a>
<? endforeach ?>