以表格形式显示插入数据库的数据

displaying in forms data inserted into database

我创建了这个 table 它的一部分从用户那里获取输入并将其保存在数据库中..

我试图让用户在标签中放置的数据保持显示。基本上,输入表单成为 input/output 来源。对如何操作有任何帮助吗?

switch ($selected){
    case 'University':
        $stmt = $conn->prepare("SELECT employees.afnumber,employees.name,employees.actualpost,university.brevet FROM employees,university WHERE employees.status='Employed' AND employees.afnumber=university.afnumber ORDER BY employees.afnumber DESC LIMIT :start,:end");
        $stmt->bindParam(':start', $pages->limit_start, PDO::PARAM_INT);
        $stmt->bindParam(':end', $pages->limit_end, PDO::PARAM_INT);
        $stmt->execute();
        $result = $stmt->fetchAll();
        $selectedtable  = "<form method='post' action=''>\n";
        $selectedtable .= "<table class='sortable'>\n<tr><th>Description</th><th>A</th><th>B</th><th>C</th><th>D</th></tr>\n";
        foreach($result as $row) {
            $selectedtable .= "<tr><th>Brevet</th><td><input type='text' name='Brevet1' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[0]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
                       <tr><th>Baccalaureat/BT</th><td><input type='text' name='Baccalaureatbt' style=' padding: 10px; font-size:16px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>$row[2]</td><td>$row[3]</td></tr>
                       <tr><th>License/TS</th><td><input type='text' name='Licensets' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>$row[3]</td></tr>
                       <tr><th>M1</th><td><input type='text' name='M1' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
                       <tr><th>Master's Degree</th><td><input type='text' name='Mastersdegree' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>
                       <tr><th>PHD</th><td><input type='text' name='Phd' style=' padding: 10px; margin-top:1px; border: solid 2px #c9c9c9; width:50px; height:2px;'></td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td></tr>";

    }
    $selectedtable .= "</table>\n"; 
    $selectedtable .= "<input type='submit' name='submit' value='Submit' style='width:80px; height:30px; text-align:center; padding:0px;'>\n";
    $selectedtable .= "</form>\n";

        if(isset($_POST['submit']))
    {   $brevet1 = $_POST['Brevet1'];
        $baccalaureatbt = $_POST['Baccalaureatbt'];
        $licensets = $_POST['Licensets'];
        $m1 = $_POST['M1'];
        $mastersdegree = $_POST['Mastersdegree'];
        $phd = $_POST['Phd'];


     $sql1="SELECT Brevet1,Baccalaureatbt,Licensets,M1,Mastersdegree,Phd FROM university";
if ($result=mysqli_query($con,$sql1))
  {

  $rowcount=mysqli_num_rows($result);
  }
    if($rowcount==0)
     {
 $sql="INSERT INTO university(Brevet1,Baccalaureatbt,Licensets,M1,Mastersdegree,Phd) VALUES('$brevet1','$baccalaureatbt','$licensets','$m1','$mastersdegree','$phd')";
 $result = mysql_query($sql);
     }
     else
     {
 $sql2 = "UPDATE university SET Brevet1 = '$brevet1' , Baccalaureatbt = '$baccalaureatbt', Licensets = '$licensets', M1 = '$m1', Mastersdegree = '$mastersdegree', Phd = '$phd'";
 $result2 = mysql_query($sql2);
     }

    }


    break;

您可以像这样为每个输入设置一个值:

<input type='text' name='Brevet1' value="<?php echo $_POST['brevet_1']; ?>">

具有三元条件: echo (!empty($_POST['brevet_1']) ? $_POST['brevet_1'] : '');

编辑

从数据库中获取数据并像上面一样设置输入值

这就是我在这种情况下一直做的事情。假设您的页面名称是 mypage.php。现在,你用 id 打开 mypage.php(比如 mypage.php?id=1,你可以获得 $_GET['id'] 的 id)。此 id 将是您需要插入/更新的 table 的 auto_increment 值。

现在,在 mypage.php,写下这段代码:-

    <form action="someEndFile.php" method="post">
        <?php echo $command; ?>
        <?php if($command == 1)
        {
$userData = fetch via $_GET['id'];
            ?>
            Your input Tags Here
            Submit Button Here
            <input type='text' name='somename' value='<?php echo $userdata->valueFromTheDatabase; ?>'>
            <?php
        }
        else
        {
            ?>
            <input type='text' name='somename'>
            <?php
        }
        ?>

    </form>

if(data_exists) 块中,检查 table 中是否存在 ID 为 id 的记录(您收到的是 $_GET['id'])。如果记录存在,它将进入 if 块,而 command value 将是 1,即 update。 如果 ID 不存在,它将转到 else 并且值将是 2,这意味着 insert new.

现在,在您的表单中,回显 $command 并输入所有字段。此处检查 $command 的值并相应地回显输入标签内的值。

现在在 someEndFile.php 文件中,有这样的代码 :-

<?php
$command = isset($_POST['command']) ? $_POST['command'] : '';
switch($command)
{
    case 1:
    //update case
    write your update query here;
    break;
    case 2:
    //insert case
    write your insert query here;
    break;
}
?>

您现在可以执行所需的查询。这就是我在这种情况下经常做的事情。

下面是提交表单时显示输入表单数据的示例。作为奖励,它还显示了一些基本的 PHP 表单验证:

w3schools Example of showing the form entry on the same page as entered

回显页面上输入的值的变量。您可以根据需要将 echo 语句放置在您喜欢的标签格式中。

示例: 如果您的表单包含:

Name: <input type="text" name="name">

然后在页面的任意位置显示包含 'name' 的标签,如下所示:

<?php
//check if name has changed:
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
    $name = test_input($_POST["name"]);
}
?>


<?php
//echo the new field entry
echo $name;
?>