图片说明我正在尝试在代码中显示option_value(第三列(值。我刚刚尝试测试mysqli_fetch_array方法,但它显示了未定义偏移量1和2的错误。你能建议在页面中单独显示数值的方法吗?
<?php
$connection = mysqli_connect("localhost", "root","","adminpanel");
$query = "SELECT option_value FROM settings";
$query_run = mysqli_query($connection,$query);
if(mysqli_num_rows($query_run)>0)
{
$row = mysqli_fetch_array($query_run)
?>
<form action="code.php" method="POST">
<div class="form-group">
<label>Fine rate :</label>
<input type="text" name="fine_rate" value="<?php echo $row[0]; ?>" class="form-control">
</div>
<div class="form-group">
<label>Email template for issued books:</label>
<textarea name="issue_template" class="form-control"><?php echo $row[1]; ?></textarea>
</div>
<div class="form-group">
<label>Email template for return books:</label>
<textarea name="return_template" class="form-control"><?php echo $row[2]; ?></textarea>
</div>
</form>
<?php
}
?>
进行时
$row = mysqli_fetch_array($query_run)
它为您的结果创建一个数组。考虑到您只选择了option_value,该数组只有一个元素。因此,您只能访问行[0]。顾名思义,$row变量只包含一行,因此您必须再次使用fetch数组来获取下一行。像这样的
<?php
$connection = mysqli_connect("localhost", "root","","adminpanel");
$query = "SELECT option_value FROM settings";
$query_run = mysqli_query($connection,$query);
if(mysqli_num_rows($query_run)>0)
{
$row = mysqli_fetch_array($query_run)
?>
<form action="code.php" method="POST">
<div class="form-group">
<label>Fine rate :</label>
<input type="text" name="fine_rate" value="<?php echo $row[0]; ?>" class="form-control">
</div>
<?php
$row = mysqli_fetch_array($query_run)
?>
<div class="form-group">
<label>Email template for issued books:</label>
<textarea name="issue_template" class="form-control"><?php echo $row[0]; ?></textarea>
</div>
<?php
$row = mysqli_fetch_array($query_run)
?>
<div class="form-group">
<label>Email template for return books:</label>
<textarea name="return_template" class="form-control"><?php echo $row[0]; ?></textarea>
</div>
</form>
<?php
}
?>
这不是一个好的方法,因为你不能每次都按这个顺序处理行。您可以从该表中获取所有列,然后根据需要对数据进行排序:
$rows;
$finerate;
$email_temp_issue;
$email_temp_return;
$query = "SELECT * FROM settings";
$query_run = mysqli_query($connection,$query);
if(mysqli_num_rows($query_run)>0){
$rows = mysqli_fetch_array($query_run);
}
foreach ($rows as $row){
switch ($row['option_name']) {
case "finerate":
$finerate = $row['option_value'];
break;
case "email_temp_issue":
$email_temp_issue= $row['option_value'];
break;
case "email_temp_return":
$email_temp_return= $row['option_value'];
break;
}
}
?>
<form action="code.php" method="POST">
<div class="form-group">
<label>Fine rate :</label>
<input type="text" name="fine_rate" value="<?php echo $finerate ; ?>" class="form-control">
</div>
<?php
$row = mysqli_fetch_array($query_run)
?>
<div class="form-group">
<label>Email template for issued books:</label>
<textarea name="issue_template" class="form-control"><?php echo email_temp_issue; ?></textarea>
</div>
<?php
$row = mysqli_fetch_array($query_run)
?>
<div class="form-group">
<label>Email template for return books:</label>
<textarea name="return_template" class="form-control"><?php echo $email_temp_return; ?></textarea>
</div>
</form>
<?php
这样一来,表中的id无关紧要,即使你在表中有更多的记录