gpt4 book ai didi

php - 如果在 php 的编辑模式下未选择,列表框值在数据库中变为 0

转载 作者:行者123 更新时间:2023-11-29 23:19:47 24 4
gpt4 key购买 nike

我有三张 table

  • 城市:city_id、city_name
  • 州:State_id、State_name
  • 新闻:City_id、State_id、标题、故事、作者等。

我在编辑按钮单击所选 ID 时在文本框和列表框中显示数据。

数据正确地显示在所选 ID 的列表框中,但是当我单击“保存”按钮而不更改列表框值时,它在数据库中变为 0。

如果我不更改列表框值并单击“保存”,则会从列表框中插入 0。

<?php 
$data = 0;
if(isset($_GET['edit']))
{
$id = clean($_GET['edit']);
mysql_set_charset('utf8');
$sql="SELECT city_name,state_name,category_name,headline,author,story,source,photo,date from news left join
city on news.city_id=city.city_id left join state on news.state_id=state.state_id left join category on news.cat_id=category.category_id where id = '$id'";
$result=mysql_query($sql);
$data=mysql_fetch_array($result);
}
?>

<?php
$cat = $Admin->select($Admin->cat_table,'','','');
?>

<select name="cat_id" class="select" required="">
<option value="<?php if(isset($_GET['edit'])){ echo $data['category_name']; }?>"><?php if(isset($_GET['edit'])){echo $data['category_name'];}?></option>
<?php
foreach($cat as $load_category)
{
?>
<option value="<?php echo $load_category["category_id"]; ?>"><?php echo $load_category["category_name"]; ?></option>
<?php }?>
</select>

<?php
$errors = array();
$Admin = new admins;
if(isset($_POST['save']))
{
$table = $Admin->news_table;
if(isset ($_GET['edit']))
{
$id = clean($_GET['edit']);
$cond = "id = '$id'";
if($Admin->save_advance($table,$_POST,'',$cond))
{
$_SESSION['message'] = "News Updated Successfully";
header("Location:add_news.php");
exit;
}

}

}
?>

我做错了什么?

最佳答案

请告诉我我是否错了,但这行

<option value="<?php if(isset($_GET['edit'])){ echo $data['category_name']; }?>">
<?php if(isset($_GET['edit'])){echo $data['category_name'];}?>
</option>

对我来说似乎很奇怪,它将类别名称设置为选择中第一个选项的值。基本上,如果您不更改列表框,您将尝试更新category_id 是category_name 的行。这应该是:

<option value="0">
<?php if(isset($_GET['edit'])){echo $data['category_name'];}?>
</option>

但是,如果您必须更新某些内容,则在没有值的情况下就无法执行此操作。因此,添加某种验证,禁止在未在选择中设置值的情况下单击“保存”按钮,或者只是执行类似的操作(向列表框中添加默认类别)

<select name="cat_id" class="select" required>  
<?php
$counter = 0;
foreach($cat as $load_category){ ?>
<option <?php echo ($counter == 0) ? 'selected' : ''; ?> value="<?php echo $load_category["category_id"]; ?>"><?php echo $load_category["category_name"]; ?></option>
<?php
//increments counter
$counter++; }?>
</select>

关于php - 如果在 php 的编辑模式下未选择,列表框值在数据库中变为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com