我是author_id
的新手。
我有这个页面:
php
所以,这里发生的是:
当您打开<?php
function renderForm($id, $StaffFullName, $StaffJobPosition, $error)
{
?>
<!doctype html>
<html>
<head><title></title></head>
<body>
<?php
// if there are any errors, display them
if ($error != '')
{
echo '<div>'.$error.'</div>';
}
?>
<form action="" method="post">
<input type="hidden" name="id" value="<?php echo $id; ?>"/>
<div>
<p>ID: <?php echo $id; ?></p>
Name: * <input type="text" name="StaffFullName" value="<?php echo $StaffFullName; ?>"/><br/>
Job Position: * <select name="JobPosition">
<?php
$query = "SELECT * FROM LUT_JOBPOS";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result)){
if ($StaffJobPosition == $row['JobposID'])
{
echo "<option value='{$row['JobposID']}' selected='selected'>{$row['JobposTitle']}</option>";
}
else {
echo "<option value='{$row['JobposID']}'>{$row['JobposTitle']}</option>";
}
}
$result->close();
?>
</select><br/>
<input type="submit" name="submit" value="Update">
<input type="button" onClick="parent.location='view.php'" value="Back">
</div>
</form>
</body>
</html>
<?php
}
// connect to the database
require_once('../../authenticate.php');
// check if the form has been submitted. If it has, process the form and save it to the database
if (isset($_POST['submit']))
{
// do some funky stuff
}
else
// if the form hasn't been submitted, get the data from the db and display the form
{
// get the 'id' value from the URL (if it exists), making sure that it is valid (checking that it is numeric/larger than 0)
if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
{
// query db
$id = $_GET['id'];
$query = "SELECT * FROM STAFF WHERE StaffID=$id";
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($result);
$result->close();
// check that the 'id' matches up with a row in the database
if($row)
{
// get data
$StaffFullName = $row['StaffFullName'];
$StaffJobPosition = $row['StaffJobPosition'];
// show form
renderForm($id, $StaffFullName, $StaffJobPosition, '');
}
else
// if no match, display result
{
echo "No results!";
}
}
else
// if the 'id' in the URL isn't valid, or if there is no 'id' value, display an error
{
echo 'Error!';
}
}
?>
之类的页面时,它会从edit.php?id=1
表中提取相关记录的数据,并在页面上显示它们以供用户编辑。
这部分代码工作正常。
我还希望用户能够从下拉框中选择“作业位置”可能的值。下拉框应从数据库中的另一个表STAFF
获取其数据。
这是代码中不起作用的部分。
我之前在这个页面上使用过LUT_JOBPOS
命令,它完美无缺。但是有人告诉我改为开启mysql_query
。
由于我进行了转换,因此无法找到如何在同一脚本上运行这两个查询。
我用mysqli_query
命令搞砸了一下,根据我调用它的位置,我可以运行一个或另一个查询,但绝不会同时运行这两个查询。
查看我的网络托管服务商的日志,我唯一能看到的可能与我的问题相关的是:
“mod_fcgid:stderr:PHP注意:未定义的变量:第24行的/var/www/vhosts/myhostdomain.com/httpdocs/prod15/admin/staff/edit.php中的连接”
连接变量来自require_once
,它包含数据库的连接参数。我确定它已设置,否则第一个查询(获取用户数据)将无效。
我在某处读到你不能在同一个脚本上运行两个authenticate.php
查询。
那么我应该如何使用sqli
表(查找表)?
PS:我知道为了显示数据,我可以使用LUT
这就是我的工作。
但是当我编辑数据时,我希望用户只能从UNION
表中的可能值中选择(下拉选择框)
任何帮助?
答案 0 :(得分:0)
您的代码中存在很多问题。在真正的应用程序中使用它之前,你真的需要先查看它,但对于你的具体问题,我猜是这样的。
您正在拨打第24行中的$result = mysqli_query($connection, $query);
行,并且只有在您拨打require_once('../../authenticate.php');
后才会这样做。
正如您所说,$connection
var在authenticate.php中定义,因此第24行未定义。
尝试在php脚本的第一行使用require
。