在表单中显示插入数据库的数据

时间:2015-07-15 06:19:56

标签: php html mysql phpmyadmin

我创建了这个表,它的一部分需要用户输入并将其保存在数据库中。

我正在努力使用户在标签中放置的数据仍然显示出来。基本上输入形式成为输入/输出源。有关如何操作的任何帮助吗?

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;

3 个答案:

答案 0 :(得分:2)

您可以为每个输入设置一个值,如下所示:

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

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

修改

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

答案 1 :(得分:1)

这是我在这种情况下一直做的事情。假设您的网页名称为mypage.php。现在,您使用id打开mypage.php(例如mypage.php?id=1,您可以将ID设为$_GET['id'])。此id将是您需要插入/更新的表的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)块中,检查表中是否存在ID为id的任何记录(您收到的是$ _GET ['id'])。如果记录存在,它将进入if块,command value1,这意味着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;
}
?>

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

答案 2 :(得分:1)

以下是提交表单时显示输入表单数据的示例。作为奖励,它还显示了一些基本的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;
?>