我想使用 PHP 创建一个主从页面。我不想从 MYSQL 数据库中获取数据,而是想从关联数组中获取数据。这可能吗?
数据将首先从 mysql 数据库表中获取并存储在关联数组中以进行一些处理。现在我想仅根据关联数组中的数据创建一个主详细信息页面。有想法的人吗?
我想使用 PHP 创建一个主从页面。我不想从 MYSQL 数据库中获取数据,而是想从关联数组中获取数据。这可能吗?
数据将首先从 mysql 数据库表中获取并存储在关联数组中以进行一些处理。现在我想仅根据关联数组中的数据创建一个主详细信息页面。有想法的人吗?
由于 PHP 的性质,这是不可能的。
PHP 脚本运行了几分之一秒,然后就死掉了。有了它所有的变量和关联数组和其他东西。
这就是为什么数据库打算作为不同 HTTP 调用之间的数据存储的原因。
因此,不要假装自己是个聪明人,让事情顺其自然:
这是此类应用程序的一个非常基本的示例,使用模板给您一个想法:
<?
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 的详细信息页面模板
<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>
和名为 list.php 的主页模板
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>
这是管理页面的示例,可让您添加和编辑记录。
但是,页面 tat 仅显示数据将几乎相同。
例如,如果您要显示汇总数据列表,并且希望动态显示特定记录的详细信息,则可以使用 javascript(jQuery 是一个很好的库,可以更轻松地处理 javascript)。
根据您在摘要页面上显示的记录数量,您可以
在这两种情况下,您都不会将所有数据保存在内存中。