我不明白代码的这一部分应该在哪里说明,以便我可以显示来自MySql的数据?
如果他们需要站在这里?如何在下拉列表中的add.html页面中显示结果?
我是php的新手。谢谢。
This is add.php
<html>
<head>
<title>Add Data</title>
</head>
<body>
<?php
//including the database connection file
include_once("config.php");
if(isset($_POST['Submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$occupation = $_POST['occupation'];
// checking empty fields
if(empty($firstname) || empty($lastname) || empty($occupation)) {
if(empty($firstname)) {
echo "<font color='red'>firstname field is empty.</font><br/>";
}
if(empty($lastname)) {
echo "<font color='red'>lastname field is empty.</font><br/>";
}
if(empty($occupation)) {
echo "<font color='red'>Occupation field is empty.</font><br/>";
}
//THIS PART OF THE CODE
if(empty($company_name)) {
$sql = "SELECT company_name FROM former_company";
$result = mysql_query($sql);
echo "<select name='company_name'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
}
echo "</select>";}
//link to the previous page
echo "<br/><a href='javascript:self.history.back();'>Go Back</a>";
} else {
// if all the fields are filled (not empty)
//insert data to database
$result = mysqli_query($mysqli, "INSERT INTO Staff(firstname,lastname,occupation) VALUES('$firstname','$lastname','$occupation')");
//display success message
echo "<font color='green'>Data added successfully.";
echo "<br/><a href='index.php'>View Result</a>";
}
}
?>
</body>
</html>
This is add.html
<html>
<head>
<title>Add Data</title>
</head>
<body>
<a href="index.php">Home</a>
<br/><br/>
<form action="add.php" method="post" name="form1">
<table width="25%" border="0">
<tr>
<td>Firstname</td>
<td><input type="text" name="firstname"></td>
</tr>
<tr>
<td>Lastname</td>
<td><input type="text" name="lastname"></td>
</tr>
<tr>
<td>Occupation</td>
<td><input type="text" name="occupation"></td>
</tr>
<tr>
<tr>
<td>Company name</td>
<td><p><br>
<select name="company_name" id="$sql">
<option value="id" selected> </option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
</select>
</p></td>
</tr>
<td></td>
<td><input type="submit" name="Submit" value="Add"></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:1)
在标记为add.html
的部分上删除此代码 <select name="company_name" id="$sql">
<option value="id" selected> </option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
<option value="Option 4">Option 4</option>
</select>
并将此代码放在add.php区域中。你应该从add.php的区域删除它,因为它不应该在那里。
$sql = "SELECT company_name FROM former_company";
$result = mysql_query($sql);
echo "<select name='company_name'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
}
echo "</select>";
您应该只有一个add.php文件,其中包含您粘贴的所有内容以及此修改。
答案 1 :(得分:1)
测试此(作为单文件解决方案):
<html>
<head><title>Add Data</title></head>
<body>
<a href="index.php">Home</a>
<br><br>
<?php
include_once("config.php");
if(isset($_POST['Submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$occupation = $_POST['occupation'];
if(empty($firstname) || empty($lastname) || empty($occupation) || empty($company_name)) {
if(empty($firstname)) echo "<font color='red'>firstname field is empty.</font><br>";
if(empty($lastname)) echo "<font color='red'>lastname field is empty.</font><br>";
if(empty($occupation)) echo "<font color='red'>Occupation field is empty.</font><br>";
if(empty($company_name)) echo "<font color='red'>Choose company.</font><br>";
} else {
$result = mysqli_query($mysqli, "INSERT INTO Staff(firstname,lastname,occupation) VALUES('$firstname','$lastname','$occupation')");
echo "<font color='green'>Data added successfully.";
echo "<br><a href='index.php'>View Result</a>";
}
} else {
?>
<form action="" method="post" name="form1">
<table width="25%" border="0">
<tr><td>Firstname</td><td><input type="text" name="firstname"></td></tr>
<tr><td>Lastname</td><td><input type="text" name="lastname"></td></tr>
<tr><td>Occupation</td><td><input type="text" name="occupation"></td></tr>
<tr>
<td>Company name</td>
<td>
<?php
$sql = "SELECT company_name FROM former_company";
$result = mysqli_query($mysqli, $sql);
echo "<select name='company_name'>";
echo "<option value='X' selected disabled> </option>";
while ($row = mysqli_fetch_array($result)) {
echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
}
echo "</select>";
?>
</td>
</tr>
<tr><td colspan="2"><input type="submit" name="Submit" value="Add"></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>
答案 2 :(得分:0)
尝试使用此而不是While循环。
for($j=0; $j<count($row['company_name']); $j++){
echo "<option value='" . $row['company_name '][$j] . "'>" . $row['company_name'][$j] . "</option>";
}
替换为您自己的变量。例如,在上面的代码中使用了$row
。