我有这段代码加载与id号对应的生日月份:
<?php
$query = "SELECT DISTINCT BIRTHDAY FROM student WHERE IDNO='".$_GET['id']."'";
if($result = mysql_query($query))
{
if($success = mysql_num_rows($result) > 0)
{
?>
<select title="- Select Month -" name="mm" id="mm" class="" >
<?php
while ($row = mysql_fetch_array($result))
list($year,$month,$day)=explode("-", $row['BIRTHDAY']);
?>
<option value="<?php echo $month;?>"><?php echo $month; ?></option>\n";
这是表单操作:
$birthday = mysql_real_escape_string($_POST['mm']);
mysql_query("UPDATE student SET YEAR = FIRSTNAME='$fname', BIRTHDAY='$birthday'
WHERE IDNO ='$idnum'");
我应该怎么做,当我点击更新按钮时,它会执行,但我看到未定义的偏移量错误存储在mysql数据库而不是月份。 我只是一个初学者,你能给我一些关于如何更新数据的提示
答案 0 :(得分:1)
在这种情况下......你将不得不使用3个选择然后加入它们来更新数据库...所以,在表格中你有这样的东西:
<select name='month'>
<option value='1'>January</option>
<option value='xx'>etc</option>
</select>
<select name='day'>
<option value='1'>1</option>
<option value='xx'>etc</option>
</select>
<select name='year'>
<option value='1980'>1980</option>
<option value='xx'>etc</option>
</select>
然后......接收该数据的PHP应该执行以下操作:
$year = mysql_real_escape_string($_REQUEST['year']);
$month = mysql_real_escape_string($_REQUEST['month']);
$day = mysql_real_escape_string($_REQUEST['day']);
$birthday = $year.'-'.$month.'-'.$day;
mysql_query("UPDATE student SET YEAR = FIRSTNAME='$fname', BIRTHDAY='$birthday'
WHERE IDNO ='$idnum'");
当然......你必须首先验证是否设置了所有变量。您可以使用isset方法完成此操作。
答案 1 :(得分:-1)
检查您的更新查询,可能是错误的。
mysql_query("UPDATE student SET YEAR = FIRSTNAME='$fname', BIRTHDAY='$birthday'
WHERE IDNO ='$idnum'");
查看今年和名字,今年将为您分配空字符。
只需这样分配,
$birthday = mysql_real_escape_string($_POST['mm']);