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

时间:2017-12-03 22:08:28

标签: php mysql

我正在我的大学为我的高级项目课做一个网站,这是基于我在当地一家小型电脑商店的工作。除了一个,我在这一点上有大部分工作。我有一个页面列出了所有活动修复,每个修复按钮旁边都有一个更新按钮。当我单击更新按钮时,修复页面会提供有关修复的各种属性,并且这些属性已填充到其受尊重的输入字段中。

我想要完成的最后一件事是当我将“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代码仍然输入到数据库,但是当我通过单击修复列表上的“更新”按钮加载修复页面时,就像我的代码的第一部分一样?我是否需要一个变量将当前的repairNotes与新添加的修复注释连接起来?

很抱歉这篇长篇文章,我不得不解释一切。

1 个答案:

答案 0 :(得分:0)

答案:

第1部分

  

当我插入&#34; repairNotes&#34;进入数据库(我确实有工作),当我带回页面的其余细节时,我也想要那里的维修说明,以便技术人员可以不断添加它们。

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

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

第2部分:

  

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

不要害怕read the manual

是。您可以使用CONCAT() MySQL函数编辑更新而不是替换Concatenate to it

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

应该通过将修复注释作为单独的行存储在单独的表中,并使用外键将这些注释引用回原始父表来使其更有用,更灵活强>,但这远远超出了你的范围,我没有时间在这里全面解释。

HOWEVER
如上所示,您可以使用简单的,附加新数据,而不是使用日期戳附加新数据,因此在使用时更加有用接下来从SELECT查询调用全文:

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

一些建议

  • 使用准备好的语句。您really, REALLY should通过所有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;\" 不要样式。样式应该在类和set in separate stylesheets(CSS文件)中,并在加载时由HTML文件调用。

  • 使用面向对象的查询($mysqli->query(...) good 。做得好。尽可能多地尝试使用静态查询$result = mysqli_query($mysqli, $query);

  • 确保在PHP和MySQL中使用correct collations and character encodings