簡體   English   中英

顯示所有行並通過提交更新所有行

[英]Display all rows and update all rows by a submit

我想通過php查詢顯示所有行,並通過sql中的提交按鈕更新所有行。 我可以通過以下方式通過自己的提交按鈕顯示所有行並更新特定行。 但是我想通過一個提交按鈕來全部更新。

為此,謝謝,我想循環進行更新。 但是在這種情況下,我不知道該怎么做。

這是我的代碼:

<?php
include_once('../db.php');
global $db;
$result = mysqli_query($dbh,"SELECT * FROM ppad");
if(!$result) {
    die("Database query failed: " . mysqli_error());
}
    while($row = mysqli_fetch_assoc($result)) {
    $id=$row['id']; 
    $name=$row['name'];
    $date=$row['date'];
    $title=$row['title'];
    $Detail=$row['Detail'];

echo '<form action="padSproccess.php" method="POST">        
<table width="100%" border="1">
<tr>
    <td width="10%">Date</td>
    <td width="14%">Time</td>
    <td width="20%">Name(url)</td>
    <td width="30%">Detail</td>
</tr>
<tr>
    <td width="10%"><input type="text" name="date" maxlength="2" value="'.$date.'"></td>
    <td width="14%"><input type="text" name="title" maxlength="50" value="'.$title.'"></td>
    <td width="20%"><input type="text" name="name" maxlength="50" value="'.$name.'"></td>
    <td width="30%"><input type="text" name="Detail" maxlength="100" value="'.$Detail.'"></td>
    <input type="hidden" name="id" value="'.$id.'">
    </tr>
</table>
    <input type="submit" name="submit" id="submit" value="Submit">
</form>';}
?>

padSproccess.php

include("../db.php");
global $db;
if(isset($_POST['submit'])){
    $date = mysqli_real_escape_string($dbh,$_POST['date']);
    $title = mysqli_real_escape_string($dbh,$_POST['title']);
    $name = mysqli_real_escape_string($dbh,$_POST['name']);
    $Detail = mysqli_real_escape_string($dbh,$_POST['Detail']);
    $id = mysqli_real_escape_string($dbh,$_POST['id']);
    // update data in mysql database 
    $update = mysqli_query($dbh,"UPDATE ppad SET date='$date', month='$month', name='$name', Detail='$Detail' WHERE id = '$id'"); 

// if successfully updated. 
}

為此,您需要將代碼更新為

<?php
include_once('../db.php');
global $db;
$result = mysqli_query($dbh,"SELECT * FROM ppad");
if(!$result) {
    die("Database query failed: " . mysqli_error());
}?>
<form action="padSproccess.php" method="POST">        
<table width="100%" border="1">
<tr>
    <td width="10%">Date</td>
    <td width="14%">Time</td>
    <td width="20%">Name(url)</td>
    <td width="30%">Detail</td>
</tr>
<?php 
    while($row = mysqli_fetch_assoc($result)) {
    $id=$row['id']; 
    $name=$row['name'];
    $date=$row['date'];
    $title=$row['title'];
    $Detail=$row['Detail'];

echo '<tr>
    <td width="10%"><input type="text" name="date[]" maxlength="2" value="'.$date.'"></td>
    <td width="14%"><input type="text" name="title[]" maxlength="50" value="'.$title.'"></td>
    <td width="20%"><input type="text" name="name[]" maxlength="50" value="'.$name.'"></td>
    <td width="30%"><input type="text" name="Detail[]" maxlength="100" value="'.$Detail.'"></td>
    <input type="hidden" name="id[]" value="'.$id.'">
    </tr>';
}?>

</table>
    <input type="submit" name="submit" id="submit" value="Submit">
</form>

現在,在padSproccess.php您將在變量中收到一系列結果,這些結果將使用foreach循環進行更新

嘗試這個。 當然對於數據庫我還沒有啟動,並且可能會出現錯誤。

<?php
include_once('../db.php');
global $db;
$result = mysqli_query($dbh,"SELECT * FROM ppad");
if(!$result) {
    die("Database query failed: " . mysqli_error());
}
?>
<form action="padSproccess.php" method="POST">
<?php
    while($row = mysqli_fetch_assoc($result)) {
    $id=$row['id']; 
    $name=$row['name'];
    $date=$row['date'];
    $title=$row['title'];
    $Detail=$row['Detail'];

echo '        
<table width="100%" border="1">
<tr>
    <td width="10%">Date</td>
    <td width="14%">Time</td>
    <td width="20%">Name(url)</td>
    <td width="30%">Detail</td>
</tr>
<tr>
    <td width="10%"><input type="text" name="ar['.$id.'][date]" maxlength="2" value="'.$date.'"></td>
    <td width="14%"><input type="text" name="ar['.$id.'][title]" maxlength="50" value="'.$title.'"></td>
    <td width="20%"><input type="text" name="ar['.$id.'][name]" maxlength="50" value="'.$name.'"></td>
    <td width="30%"><input type="text" name="ar['.$id.'][Detail]" maxlength="100" value="'.$Detail.'"></td>
    </tr>
</table>

';}
    ?>
    <input type="submit" name="submit" id="submit" value="Submit">
    </form>

<?php   
include("../db.php");
global $db;
if(isset($_POST['submit'])){
    foreach($_POST['ar'] as $id=>$dat){
        $date = mysqli_real_escape_string($dbh,$dat['date']);
        $title = mysqli_real_escape_string($dbh,$dat['title']);
        $name = mysqli_real_escape_string($dbh,$dat['name']);
        $Detail = mysqli_real_escape_string($dbh,$dat['Detail']);
        $id = mysqli_real_escape_string($dbh,$id]);
        // update data in mysql database 
        $update = mysqli_query($dbh,"UPDATE ppad SET date='$date', month='$month', name='$name', Detail='$Detail' WHERE id = '$id'"); 
    }
// if successfully updated. 
}
?>

您首先需要做的是擁有一個整體表單,而不是每個表單都有一個表單(除非您想使用JavaScript來觸發Ajax調用)。 因此,您需要做的是確保每一行都可以與特定的ID相關聯:

<?php

include_once '../db.php';

$result = mysqli_query($dbh, "SELECT * FROM ppad");

if(!$result) {
    die("Database query failed: " . mysqli_error());
}

?>

<form action="padSproccess.php" method="POST">
    <table width="100%" border="1">
        <thead>
            <tr>
                <td width="10%">Date</td>
                <td width="14%">Time</td>
                <td width="20%">Name(url)</td>
                <td width="30%">Detail</td>
            </tr>
        </thead>
        <tbody>
        <?php

            while($row = mysqli_fetch_assoc($result)) {
                $id     = $row['id']; 
                $name   = $row['name'];
                $date   = $row['date'];
                $title  = $row['title'];
                $Detail = $row['Detail'];

                echo '
                    <tr>
                        <td width="10%"><input type="text" name="date[' . $id . ']" maxlength="2" value="'.$date.'"></td>
                        <td width="14%"><input type="text" name="title[' . $id . ']" maxlength="50" value="'.$title.'"></td>
                        <td width="20%"><input type="text" name="name[' . $id . ']" maxlength="50" value="'.$name.'"></td>
                        <td width="30%"><input type="text" name="Detail[' . $id . ']" maxlength="100" value="'.$Detail.'"></td>
                    </tr>
                ';
            }

        ?>
        </tbody>
    </table>
    <input type="submit" name="submit" id="submit" value="Submit">
</form>

然后在padSproccess.php您將收到一個由namesdatestitlesDetails的數組,每個數組均由行的ID鍵入。 因此,它將變為如下所示:

<?php

include "../db.php";

if(isset($_POST['submit'])){
    $ids = array_keys($_POST['name']);

    foreach ($ids as $id) {
        $date   = mysqli_real_escape_string($dbh,$_POST['date'][$id]);
        $title  = mysqli_real_escape_string($dbh,$_POST['title'][$id]);
        $name   = mysqli_real_escape_string($dbh,$_POST['name'][$id]);
        $Detail = mysqli_real_escape_string($dbh,$_POST['Detail'][$id]);
        $id     = mysqli_real_escape_string($id);
        // update data in mysql database 
        $update = mysqli_query($dbh,"UPDATE ppad SET date='$date', month='$month', name='$name', Detail='$Detail' WHERE id = '$id'"); 
    }

// if successfully updated. 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM