将mysql查询数据存储为另一个页面上的变量和回显信息

时间:2012-12-14 16:55:37

标签: php html mysql

我想回显一个数组'name'的一部分,然后在它旁边有一个提交按钮,它会重定向到一个新的页面,它会回显数组的其余部分,例如。地址,电话号码等。但重定向时信息会丢失。有什么方法可以解决这个问题。这段代码应该解释我的目标。

第1页:

<?php
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
?>

<html>
  <form action='page2.php' method='POST'>
    <?php echo $info['name']; ?>
    <input type='submit' value='see other details'>
  </form>
</html> 

第2页:

<?php
   echo $info['address'].$info['address'].$info['address'];
?>

2 个答案:

答案 0 :(得分:0)

  

重定向时信息丢失。有什么方法围绕这个

是的,使用PHP会话。将您的数组存储为$_SESSION['info'],它将在下一页上提供。不要忘记在两个页面上session_start()

第1页:

<?php
   session_start();
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
   $_SESSION['info'] = $info;
?>

第2页:

<?php
   session_start();
   $info = $_SESSION['info'];
   echo $info['address'].$info['address'].$info['address'];
?>

答案 1 :(得分:0)

除非这是你想要做的大大简化的版本,否则没有理由在这里使用表格。您没有将任何数据发布到表单,只是使用它来访问另一个页面,这在技术上就是链接的目的。这不是一个明显不正确的形式使用,但它并不是真的 - 还是 - 也是。

只需通过指向下一页的链接回显该值即可。您可以使用类似jQuery按钮的方式设置a:链接样式,如果需要,甚至可以使用图像模仿按钮。

所以,例如:

<?php
   $info = mysql_query ("SELECT * FROM table WHERE name= 'something'");
   $info = mysql_fetch_assoc($info));
?>

<html>
    <?php echo $info['name']; ?>
    <a href="page2.php">Submit</a>
</html> 

另一种选择是做两个叠加的div并在点击按钮时显示/隐藏它们。它需要一些jQuery或javascript,但可以消除对服务器的影响,从而提供更流畅的用户体验。如果没有你想要做的更多细节,很难说什么是最好的。

最后,请记住,虽然会话确实有效,但可能存在问题。例如,一些公司和人员关闭会议(或完全阻止会议),因此他们不能100%依赖。特别是IE(在某些版本中)解释了用户选择阻止cookie以阻止会话。如果他们的应用程序在两个选项卡中打开,则可能会使值混淆并导致不良后果。至少,它可能会导致您的应用程序抛出各种吓唬用户的对话框,即使它们真的没那么重要。