【问题标题】:Extracting from database to textarea从数据库中提取到textarea
【发布时间】:2015-09-21 01:47:19
【问题描述】:

我正在将当前数据与更新数据进行比较,以检查信息是否有变化,并将更改添加到新表更改中:

if (isset($_POST['submit'])) 
{
    $sql = "SHOW COLUMNS FROM Employees";
    $result = mysqli_query($con,$sql);
     while($row = mysqli_fetch_array($result)){
                $tempname = $row['Field'];
                $sql2 = "UPDATE Employees SET ".$row['Field']."= '$_POST[$tempname]' WHERE AFNumber='".$_GET["af"]."'";
                $result2 = mysqli_query($con,$sql2);
                if ($con->query($sql2) === TRUE) {
                } else {
                    echo "Error: " . $sql2 . "<br>" . $con->error;
                    echo '<script>swal("Error", "Something went wrong '.$con->error.'", "error");</script>';
                }

    $sqlOldData = "SELECT * FROM Employees WHERE AFNumber='".$_GET["af"]."' AND (".$row['Field']." NOT LIKE '".$_POST[$tempname]."')";
    $result3 = $con->query($sqlOldData);
    if ($result3->num_rows > 0) {

    while($row3 = $result3->fetch_assoc()) {
        $sql3 = "INSERT INTO Changes (Table, AFNumber, Attribute,DateChanged,HRUser,OldValue,NewValue)
VALUES ('Employees', '".$_GET["af"]."', '".$row["Field"]."', '".date('dd/m/Y HH:mm:ss')."', '$login_session', '.$row3[0]', '$_POST[$tempname]')";
        if ($con->query($sql3) === TRUE) {
        echo "New record created successfully";
        } else {
            echo "Error: " . $sql3 . "<br>" . $con->error;
        }
    }
    } else {
        echo "0 results";
    }

}

现在我想提取有关更改的信息,例如日期用户...并将它们以这种形式放在 textarea 标记中:

<textarea name="changes" rows="50" cols="59" disabled>
  12/07/2015 - User:"Mike"  Changed:"Actual Location" From: "blabla" to "bla"
</textarea>

但我不知道该怎么做,请帮助...

【问题讨论】:

  • @gabe3886 老实说,我只是从 php-sql 连接开始,我相信我应该使用选择数据库代码,但我不太确定如何在 textarea 中使用它.. $sql = "从 MyGuests 中选择 id、名字、姓氏"; $result = $conn->查询($sql); if ($result->num_rows > 0) { // 输出每一行的数据 while($row = $result->fetch_assoc()) { echo "id: " . $行[“id”]。 “ - 姓名: ” 。 $行[“名字”]。 “”。 $行[“姓氏”]。 "
    "; } } else { echo "0 个结果"; } $conn->close(); ?>

标签: php html sql


【解决方案1】:

在不太了解您的数据(例如 AFNumber 是什么)的情况下,我建议您简单地从 Changes 表中查询所有内容,并以所需的形式显示它们:

$changes = $con->query("SELECT * FROM Changes WHERE Table = 'Employees'");
if ($changes->num_rows > 0) {
    echo '<textarea name="changes" rows="50" cols="59" disabled>' . "\n";
    while ($row = $changes->fetch_assoc()) {
        echo sprintf('%s - User:%s  Chnaged:"%s" From: "%s" to "%s"',
            $row['DateChanged'], $row['HRUser'], $row['Attribute'],
            $row['OldValue'], $row['NewValue']) . "\n";
    }
    echo "</textarea>";
}

为了显示数据,我在这里简单地使用了echo,但使用一些模板系统应该不会对解决方案的核心概念产生太大影响。

【讨论】:

  • 亲爱的我收到解析错误:语法错误,意外的“员工”(T_STRING),期待“,”或“;”在 C:\xampp\htdocs\p\login\data\employee.php 第 127 行
  • $changes = $con->query("SELECT * FROM Changes WHERE Table = 'employees'");
  • 这一行在语法上似乎没问题,你仍然得到错误吗?
  • 第 127 行之前的某处没有开放的单引号吗?你用什么代码编辑器?它有语法高亮吗?突出显示看起来还可以吗?
【解决方案2】:

根据您的评论,您有以下代码:

$sql = "SELECT id, firstname, lastname FROM MyGuests"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) 
{ 
// output data of each row 
    while($row = $result->fetch_assoc()) 
    { 
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
    } 
} 
else 
{ 
    echo "0 results"; 
} 
$conn->close();

要以您的方式将信息放入文本区域,请使用:

echo '<textarea name="changes" rows="50" cols="59" disabled>id:' . $row['id' . ' - Name: ' . $row['firstname'] . ' ' .  $row['lastname'] . '</textarea>';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-15
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2021-07-23
    相关资源
    最近更新 更多