【问题标题】:PHP - Modifying Record from table in Oracle DatabasePHP - 从 Oracle 数据库中的表中修改记录
【发布时间】:2014-03-26 15:24:22
【问题描述】:

我是 PHP 新手,很抱歉缺少正确的术语。我目前有一个 php 文件,它在浏览器中显示我的数据库表并提供编辑记录的选项。但是我不知道如何将编辑按钮连接到特定记录并将其带到第二个 php 页面进行编辑。

基本上我如何让我点击编辑的记录进入我的第二个 PHP 文件!

与我希望我的 php 页面运行方式类似的代码链接是 http://www.shotdev.com/php/php-oracle/php-oracle-oci8-edit-update-data/

任何建议将不胜感激。

这是迄今为止我的第一个 PHP 脚本的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>  
<head>  
<title>ShotDev.Com Tutorial</title>  
</head>  
<body>  
<?php  
$dbuser = "scott";
        $dbpassword = "tiger";
        $db = "orabis";

    $conn = oci_connect($dbuser,$dbpassword,$db);


$sql = "SELECT * FROM ATTENDEES";  
$objParse = oci_parse ($conn, $sql);  
oci_execute ($objParse,OCI_DEFAULT);  
print '<table border="1">';


            print '<tr>'; 
            print '<th>FirstName</th>'; 
            print '<th > LastName  </th>';
            print '<th > Email  </th>';
            print '<th > Address  </th>';
            print '<th > Company  </th>';
            print '<th > Title  </th> ' ;
            print '<th > City </th> ' ;
            print '<th > State  </th> ';
            print '<th > Zip  </th> ';
            print '<th> Country  </th>';
            print '<th> Phone  </th> ';
            print '<th> Edit  </th>';
            print '</tr>';  
while ($row = oci_fetch_array($objParse, OCI_RETURN_NULLS+OCI_ASSOC)) {

   foreach ($row as $item) {
       print '<td>'.($item !== null ? htmlentities($item, ENT_QUOTES) : '&nbsp').'</td>';
   }
   print '<td><a href="modify_attendee2.php">Edit</a></td>';
   print '</tr>';
}  

print '</table>';  


oci_close($conn);  
?>  
</body>  
</html> 

【问题讨论】:

  • 您需要一个主键列。 ATTENDEES 有自动递增的列吗?另外,我当然希望这些不是您数据库的真实凭据,但如果是,那么您绝对应该在接下来的几分钟内在您的数据库中更改它们。
  • 顺便说一句,这条线对你很重要&lt;td align="center"&gt;&lt;a href="php_oracle_update2.php?CusID=&lt;?=$objResult["CUSTOMERID"];?&gt;"&gt;Edit&lt;/a&gt;&lt;/td&gt;
  • 幸运的是每个人,不!仅针对大学项目显示服务器端功能,更新与会者记录是目标之一。我的表非常简单,没有主键,但我想只使用电子邮件。在我的表单中,它的名称是参加者电子邮件。
  • 我强烈建议使用自动递增字段作为主键来实现设计,因为它会让您在这个项目和未来项目的数据库规范化方面走上正轨。如果这是真的,那么您将如何处理只想使用相同电子邮件的夫妻?...无论如何,如果您坚持使用电子邮件作为主键,那么在您的架构中指定它以确保您永远不会意外插入重复项。那么就做'href="modify_attendee2.php?email='.urlencode(row['attendee_email']).'"'
  • 感谢 MonkeyZeus 的帮助和建议。

标签: php sql oracle


【解决方案1】:

基本上,您需要一个 ID 作为主键才能使用。如果您的表中已经有此列,那么您可以通过两种不同的方式构建您的功能:通过 URL 或通过 FORM。

网址

你需要一个类似的网址

<a href="edit_user.php?id=<?php echo $user_id; ?>">Edit</a>

然后在您的 PHP 文件 (edit_user.php) 中,您必须通过 $_GET['user_id'] 获取 user_id

表格

您将需要一个带有 隐藏 输入的表单,其值将是用户 ID

<form action="edit_user.php">
    <input type="hidden" name="user_id" value="<?php echo $user_id; ?>" />
    <input type="submit" value="Edit" />
</form>

然后在您的 PHP 文件 (edit_user.php) 中,您必须通过 $_POST['user_id'] 获取 user_id

【讨论】:

  • 感谢您的时间 ponciste,url 方式现在对我有用!
  • 很高兴它成功了!你能接受我的回答吗?谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
相关资源
最近更新 更多