繁体   English   中英

PHP如何在刚插入数据库的文本区域中显示文本?

[英]PHP How can I display text in a text area that I just inserted to my database?

我正在根据我在当地一家小型计算机商店的工作为我的大学的高级项目班建立一个网站。 在这一点上,我大部分工作都在进行,只有一部分。 我有一个页面列出了所有进行中的维修,每个维修旁边都有一个更新按钮。 当我单击更新按钮时,修复页面会显示有关修复的各种属性,并且这些属性已经填充到其相应的输入字段中。

我要完成的最后一件事是,当我将“ repairNotes”插入数据库(我确实在使用)时,当我将页面与其余详细信息一起带回时,我也想要那里的维修记录,所以技术人员可以不断地添加他们。

这是当我从数据库中获取字段并填充文本字段时的一些示例代码:

    $query =   "SELECT date, make, model
        FROM repair
        JOIN customer on customer.custID = repair.customerID
        WHERE repairID = '$repairID'";
    $result = mysqli_query($mysqli, $query);
    if($result){
    list($datOfRepair, $make, $model) = mysqli_fetch_row($result);
    }

在我的HTML中

    <p align=\"left\"> Date: <input type=\"text\" name=\"date\" value = \"$datOfRepair\" size=\"6\" readonly = 'true'> </p> 
    <p align=\"left\">Make:  <input type=\"text\" name=\"make\" value = \"$make\" size=\"10\" readonly = 'true'></p>
    <p align=\"left\"> Model:  <input type=\"text\" name=\"model\" value = \"$model\" size=\"10\" readonly = 'true'></p>"

要添加维修说明,我有

    $query = "UPDATE repair SET
    repairNotes = '$repairNotes'
    WHERE repairID = '$repairID'";
    $result = $mysqli->query($query);
    if ($result) {$msg = "Repair Notes added to database"; }

    <textarea name=\"repairNotes\" style=\"width:650px; height:200px;\">$repairNotes</textarea><br>

如何使repairNotes代码仍输入到数据库,但是当我通过单击修复列表上的“更新”按钮加载修复页面时,就像代码的第一部分一样? 我是否需要一个变量将当前的修复说明与新添加的修复说明连接起来?

对不起,很长的帖子,我不得不解释一切。

回答:

第1部分

当我在数据库中插入“ repairNotes”(我确实在工作)时,当我将页面和其余的详细信息放回原处时,我也希望那里有维修说明,以便技术人员可以不断地将其添加到其中。

SELECT date, make, model, repairNotes FROM repair.....SELECT语句中添加所需的列,并以与输出其余数据相同的方式输出此数据。

SELECT <column>, <column2 ,> .... FROM .....  

第2部分:

我是否需要一个变量将当前的修复说明与新添加的修复说明连接起来?

不要害怕阅读手册

是。 您可以使用CONCAT() MySQL函数,通过编辑更新而不是替换而是将其连接来完成此操作:

$query = "UPDATE repair SET repairNotes = 
                        CONCAT(repairNotes, ", ",'$repairNotes') WHERE...

应该通过将维修说明作为单独的行存储在单独的表中,并使用外键将这些注意事项返回到原始父表中,从而使此操作更有用和更灵活,但这超出了您的范围,我没有是时候在这里进行详细说明了。

但是
可以像上面说明的那样,向新数据附加一个简单的,而不是附加一个简单的日期戳,这样,当下次从SELECT查询中调用全文时,它就变得更加有用:

$query = "UPDATE repair SET repairNotes = CONCAT(repairNotes, 
                        ' ', NOW(), ': ', ' $repairNotes') WHERE...

一些忠告

  • 使用准备好的语句 真的,真的应该在所有MySQL / PHP工作中使用它们。 如果您的导师没有告诉您这是危险的过时情况,并且没有在教您您在该领域工作所需的方法。

  • <p align=\\"left\\"> Date: <input type=\\"text\\" name=\\"date\\"这看起来很可怕,很难阅读,很难编码和复制/粘贴。 所以你的字符串是一个引用类型的包裹,而不是简单地拨动你的报价" ,而在另一个你的HTML '

    例:

      $string = "<p align='left'> Date: <input type='text' name='date'>"; 
  • style=\\"width:650px; height:200px;\\" 不要在文档中设置样式。 样式应在类中,并在单独的样式表 (CSS文件)中设置,并在加载时由HTML文件调用。

  • 使用面向对象的查询( $mysqli->query(...)很好 做得好。 尝试在静态查询中使用它们$result = mysqli_query($mysqli, $query); 越多越好。

  • 确保在PHP和MySQL中使用正确的排序规则和字符编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM