首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP创建主详细信息页

使用PHP创建主详细信息页
EN

Stack Overflow用户
提问于 2011-03-24 15:54:30
回答 2查看 11.3K关注 0票数 0

我想使用PHP创建一个主细节页面。我不想从MYSQL数据库中获取数据,而是希望从关联数组中获取数据。这个是可能的吗?

数据将首先从mysql数据库表中获取,并存储在关联数组中进行某些处理。现在,我只想根据关联数组中的数据创建一个主详细信息页。有人有想法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-03-24 16:21:39

由于PHP的特性,这是不可能的。

PHP脚本运行了一小部分秒,然后就退出了。所有这些都是变量和关联数组等等。

这就是为什么数据库希望成为不同HTTP调用之间的数据存储的原因。

因此,不要假装是一个聪明的群体,让事情顺其自然:

  • one页,用于查询数据库中的数据列表,带有指向详细页的类型链接,通过HTTP查询字符串
  • 传递唯一的记录id,该页面根据传递的id.

查询数据库的详细信息。

下面是此类应用程序的一个非常基本的示例,使用模板,为您提供一个想法:

代码语言:javascript
复制
<?  
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的详细信息页面模板

代码语言:javascript
复制
<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的主页模板

代码语言:javascript
复制
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>

这是管理页面的示例,允许您添加和编辑记录。

然而,tat页面只是显示数据将基本相同。

票数 3
EN

Stack Overflow用户

发布于 2011-03-24 16:36:57

例如,如果您正在显示摘要数据列表,并且希望动态显示特定记录的详细信息,则可以使用javascript (jQuery是一个很好的库,使处理javascript更容易)。

根据您在摘要页上显示的记录数量,您可以选择

javascript

  • pull

  • 从数据库中提取所有数据(主数据和详细数据),用输出,然后用隐藏数据库中的主数据,用
    1. 输出详细数据,然后在用户要求时对详细数据执行AJAX请求。

在这两种情况下,您都不会将所有数据保存在内存中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5421931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档