0

このコードを実行すると、データベースにゼロが挿入されるだけです。なんで?この問題を解決するにはどうすればよいですか?

<select class="date" name="year"> <option value="">Year</option>
<?php $i=1; while($i<=31) { ?>
<option value="<?php $i ?>"> <? echo $i; ?> </option>
<?php $i++; } ?> </select>

そしてこれは私のmysqlコードです:

$sql="INSERT INTO information ( Year ) 
VALUES ('$_POST[year]')";
4

2 に答える 2

2
<select class="date" name="day"> <option value="">Day</option>
<?php $i=1; while($i<=31) { ?>
<option value="<?php echo $i; ?>"> <?php echo $i; ?> </option>
<?php $i++; } ?> </select>

常に使用<?php?>、ブラウザがPHPを認識するようにします

また、あなたの最初の<?php $i ?>

これをに変更echo $i; し、同じ行でに変更しました<? echo $i; ?> </option><?php echo $i; ?> </option>

そしてそれは私のために働いた。

あなたの挿入物で:

$sql="INSERT INTO information (COL_FOR_DAY) 
VALUES ('{$_POST['day']}')";
于 2012-12-20T22:34:12.380 に答える
2

ここでそれがあなたのコードになる方法

     <select class="date" name="year">
       <option value="">Year</option>
         <?php  for($i=1;$i<=31 ;$i++ ) { ?>
       <option value="<?php $i ?>"> <? echo $i; ?> </option>
         <?php } ?>
     </select>

編集 :

    <input type ="submit" value =" submit me"/>
    <?php  if (isset($_POST['year']))  // check if isset the year
       {
       $year = $_POST['year']  ;
       } else {}



    $sql="INSERT INTO information ( Year ) VALUES ('".$year."')";
       ?>

編集2:あなたのコードは正しいですが、SQLインジェクションがそのようになるのを防ぐために値をエスケープする必要があります

insert into ....
    VALUES
       ('mysql_real_escape_string($_POST[user])','mysql_real_escape_string($_POST[email])'.........
于 2012-12-20T22:37:03.813 に答える