以表格形式显示插入数据库的数据
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;
?>
我创建了这个 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;
?>