【问题标题】:displaying in forms data inserted into database在表单中显示插入数据库的数据
【发布时间】:2015-10-04 01:06:35
【问题描述】:

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

我正在尝试使用户在标签中放置的数据保持显示。基本上输入形式成为输入/输出源。有什么帮助吗?

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;

【问题讨论】:

    标签: php html mysql phpmyadmin


    【解决方案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;
    ?>
    

    【讨论】:

      【解决方案2】:

      这是我在这种情况下一直做的事情。假设您的页面名称是mypage.php。现在,你用id 打开mypage.php(比如mypage.php?id=1,你可以得到$_GET['id'] 的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 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;
      }
      ?>
      

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

      【讨论】:

        【解决方案3】:

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

        &lt;input type='text' name='Brevet1' value="&lt;?php echo $_POST['brevet_1']; ?&gt;"&gt;

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

        编辑

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

        【讨论】:

        • 如果表单提交并且值在选择语句之前更新/插入,这是一个解决方案。
        • 所以@dan 看看我的编辑,然后从数据库中获取数据来设置输入值
        • @dan 给这个人赏金,他值得;)这个答案是一样的,如果还没有另一个答案,我会写。如果这不能解决你的问题,也许你需要更好地解释或分享更多代码。
        • @wilson 是否可以打开一秒钟的聊天会话
        • @dan 是的,没问题
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 2018-08-30
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多