在PHP 1中更新多个SQL行提交

时间:2016-01-22 18:19:00

标签: php html sql forms

在此先感谢,我真的很难在这里用SQL更新多行。我尝试了多次迭代,似乎只是缺少一些非常简单的东西,所以任何帮助都会让我非常感激。

基本上我有一个大的前端表显示表单中当前的项目库存,这是完美的,正确显示所有金额,我在底部有一个提交按钮,理想情况下想要更新所做的任何更改一键点击。我知道我错过了一些相当明显但却无法理解的东西。

这是表格显示代码:

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM stock";

$result = mysqli_query($conn,$sql)or die(mysqli_error());

echo "<div class='table-striped'><form action='update_stock.php' action='post'><table class='table>'";
echo "<tr>

    <th>Sizing</th>

    <th>Black Active</th>
    <th>Nude Active</th>
    <th>Blue Active</th>
    <th>Pink Active</th>
    <th>Purple Active</th>

    <th>Black Vest</th>
    <th>Nude Vest</th>
    <th>Pink Vest</th>
    <th>Blue Vest</th>

    <th>Minnie</th>
    <th>Skulls</th>
    <th>Batman</th>


</tr>";

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

$id = $row['sizing'];

$ba = $row['BlackActive'];
$na = $row['BeigeActive'];
$blua = $row['BlueActive'];
$pina = $row['PinkActive'];
$pura = $row['PurpleActive'];

$bv = $row['BlackVest'];
$nv = $row['BeigeVest'];
$pv = $row['PinkVest'];
$bluv = $row['BlueVest'];

$min = $row['Minnie'];
$sku = $row['Skulls'];
$bat = $row['Batman'];





echo "<tr>

<td style='padding:10px;font-weight:bold;'><input class='form-control' type='hidden' name='id[]' value=".$id." />".$id."</td>

<td style='padding:10px;'><input class='form-control' type='text' name='ba[]' value=".$ba." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='na[]' value=".$na." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='blua[]' value=".$blua." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='pina[]' value=".$pina." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='pura[]' value=".$pura." /></td>

<td style='padding:10px;'><input class='form-control' type='text' name='bv[]' value=".$bv." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='nv[]' value=".$nv." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='pv[]' value=".$pv." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='bluv[]' value=".$bluv." /></td>

<td style='padding:10px;'><input class='form-control' type='text' name='min[]' value=".$min." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='sku[]' value=".$sku." /></td>
<td style='padding:10px;'><input class='form-control' type='text' name='bat[]' value=".$bat." /></td>







    </tr>";
} 

echo "</table><input class='btn btn-md btn-danger btn-block searchbut' type='submit' value='Update'></form></div>";

这是当前试用版(不工作版)的update_stock:

// Sanatize the incoming!
    $ba = $_POST['ba'];
    $na = $_POST['na'];
    $blua = $_POST['blua'];
    $pina = $_POST['pina'];
    $pura = $_POST['pura'];
    $bv = $_POST['bv'];
    $nv = $_POST['nv'];
    $pv = $_POST['pv'];
    $bluv = $_POST['bluv'];
    $sku = $_POST['sku'];
    $bat = $_POST['bat'];
    $min = $_POST['pina'];
    $id = $_POST['id'];

$conn = mysqli_connect($servername, $username, $password, $dbname);



    $stmt = mysqli_prepare($conn,
    "UPDATE stock SET
    BlackActive=?, 
    BeigeActive=?, 
    BlueActive=?, 
    PinkActive=?, 
    PurpleActive=?, 
    BlackVest=?, 
    BeigeVest=?, 
    PinkVest=?, 
    BlueVest=?, 
    Skulls=?, 
    Minnie=?, 
    Batman=? 
    WHERE sizing=?") or die(mysqli_error($conn));
    mysqli_stmt_bind_param($stmt, 'sssssssssssss',
        $ba, $na, $blua, $pina, $pura, $bv, $nv, $pv, $bluv, $sku, $min, $bat, $id);

    mysqli_stmt_execute($stmt);

    //echo "update successful! YAY!<br />";
echo "update successful! YAY!<br />";
//close connection to db
mysqli_close($conn);

正如你可能看到的那样,这是一件很简单的事情,我根本无法理解它。任何帮助,指针,示例或修复都会得到很多赞赏;)

由于

1 个答案:

答案 0 :(得分:0)

请使用此: 只需像这样循环你的帖子数据

foreach($_POST['ba'] as $ba){

// Sanatize the incoming!
    //$ba = $_POST['ba']; no need to use it again
    $na = $_POST['na'];
    $blua = $_POST['blua'];
    $pina = $_POST['pina'];
    $pura = $_POST['pura'];
    $bv = $_POST['bv'];
    $nv = $_POST['nv'];
    $pv = $_POST['pv'];
    $bluv = $_POST['bluv'];
    $sku = $_POST['sku'];
    $bat = $_POST['bat'];
    $min = $_POST['pina'];
    $id = $_POST['id'];

$conn = mysqli_connect($servername, $username, $password, $dbname);

    $stmt = mysqli_prepare($conn,
    "UPDATE stock SET
    BlackActive=?, 
    BeigeActive=?, 
    BlueActive=?, 
    PinkActive=?, 
    PurpleActive=?, 
    BlackVest=?, 
    BeigeVest=?, 
    PinkVest=?, 
    BlueVest=?, 
    Skulls=?, 
    Minnie=?, 
    Batman=? 
    WHERE sizing=?") or die(mysqli_error($conn));
    mysqli_stmt_bind_param($stmt, 'sssssssssssss',
        $ba, $na, $blua, $pina, $pura, $bv, $nv, $pv, $bluv, $sku, $min, $bat, $id);

    mysqli_stmt_execute($stmt);

    //echo "update successful! YAY!<br />";
echo "update successful! YAY!<br />";
//close connection to db

}
mysqli_close($conn);