从html表中的循环内部的'textarea'中提取值以更新mysql数据库

时间:2016-10-13 04:05:10

标签: php mysql

我的mysql数据库中有一个名为'Spatula'的表。它填写了数据。我正在使用'html table'通过php代码在网页上显示这些数据。该表的最后一列称为“订单数量”,它是一个“textarea”。用户可以通过在textarea中放入整数值来输入他们想要的Spatula数量。问题是我不知道如何从文本区域中选择所有值,以便我可以使用它来更新我的数据库。我想要做的是根据用户输入更新mysql表中的最后一行。比如说,如果用户订购2个刮刀id为3,则应从mysql表中扣除2个刮刀。你能告诉我如何从textarea中提取代码中的数据并使用它来更新我的数据库吗?

以下是我的代码,它显示数据库中的值并将其显示在网页上:

<html>

<Title>
  WebPage1
</Title>
<head>
<p><h1> Orders </h1></p>
</head>

<body>
<p>Customer Details: </p>
  <textarea rows="6" cols="60">
  </textarea>
  <br>
Responsible Staff Member:
<textarea rows="0.5" cols="4" style="width: 188px; height: 22px;">

</textarea>

<p> </p>

<?php

//replace the following with your details. Dbname is your username by default.
$con = mysqli_connect("info20003db.eng.unimelb.edu.au","sjayswal","sjayswal_2016","sjayswal");

// Check connection
if (mysqli_connect_errno()) {
    echo "Could not connect to MySQL for the following reason: " . mysqli_connect_error();
}


/* this lists the name and release date of Contents from Spatula */

echo "<table border='1'>";

$result = mysqli_query($con,"SELECT * from Spatula");

echo "<tr>";
        echo "<td>idSpatula</td><td>ProductName</td><td>Type</td><td>Size</td><td>Colour</td><td>Price</td><td>Quantity currently in stock</td>
    <td>Order Quantity</td>";
        echo "</tr>";

while($row = mysqli_fetch_array($result)) {

    echo "<tr>";
    echo "<td>" . $row['idSpatula'] . "</td><td>" . $row['ProductName'] . "</td><td>".$row['Type']."</td><td>". $row['Size'].
    "</td><td>".$row['Colour']."</td><td>".$row['Price']."</td><td>"
    .$row[' QuantityInStock']."</td><td> <input type= 'textarea' name='textput' id='spatid' value='0'></textarea></td>";

    echo "</tr>";


}

echo "</table>";

echo "</br>";
echo '<input type="submit" value="Submit">';


if (isset($_POST['Submit'])) {

$values=$_POST['textput'];

}






mysqli_close($con);
?>






</body>



</html>

This is how the webpage looks This is how my database looks

2 个答案:

答案 0 :(得分:0)

PHP和html&#34;在两个不同的线程中运行&#34;服务器将生成你的html的第一部分,然后它将执行你的PHP代码,然后生成最后一部分,所以你不能将用户输入传递给该PHP代码,你需要做一些类似ajax调用的事情您的服务器使用用户输入的数据,然后将其保存在您的数据库中

答案 1 :(得分:0)

试试这个

<input type='hidden' name='ids[]' value='".$row['idSpatula']."'>
<textarea name='textput".$row['idSpatula']."'  value='0'></textarea>

在你的圈内

if (isset($_POST['Submit'])) {
    foreach($ids as $id)
    {
        $text_box_value = $_POST['textput'.$id];
        //write code for updation
    }
}