2016-11-24 2 views
2

Я не могу получить значение параметра из моей формы, чтобы передать его кодам действий.Невозможно получить значение опции из формы

Форма:

<select required name ="class" class="form-control"> 
    <option value="NULL">-select class-</option> 
    <?php 
    $link2 = query("select * from td_class"); 
    while ($list = mysql_fetch_array($link2)) { 
    ?> 
    <option value="<?php echo $list['class'] ?>"><?php echo $list['class']; ?></option> 
    <?php } ?> 
    <option value="Alumni">Alumni</option> 
</select> 

Я хотел использовать его, чтобы проверить способность класса в моем классе таблицы, если класс на полную мощность, он будет бросать ошибка в противном случае будет успешно добавлен студент данных. Тем не менее, мои коды действий, похоже, не могут получить заданный ввод класса, и когда я отправляю кнопку для добавления данных о студенте, она всегда будет вызывать ошибку, говоря, что класс заполнен, хотя он еще не заполнен. Ниже приведены мои коды действий, что я сделал до сих пор:

if ($hal == 'managestudent') { 
    $name = $_POST['name']; 
    $image = $_FILES['image']; 
    $class = $_POST['class']; 
    $id = $_GET['id']; 

    if ($aksi == 'addstudent') { 
     $student = query("select name, count(name) from td_student where class='$class' "); 
     $student2 = mysql_fetch_array($student); 
     $capacity = query("select capacity from td_class where class='$class'"); 
     $cap = mysql_fetch_array($capacity); 

     if (($student2) >= ($cap)) { 
      echo"<script> alert ('the class is full'); " 
      . "history.back();" . "</script>"; 
     } else { 
      if (empty($image['tmp_name'])) { 
       echo "Without image<br>"; 
       $sql = query("insert into td_student (name,class) values ('$name','$class)"); 
      } else { 
       echo "With image<br>"; 
       $namafile = uploadBerkas($image); 
       $sql = query("insert into td_student (name,class,image) values ('$name','$class,'$namafile')"); 
      } 
      if ($sql == TRUE) { 
       echo "SQL True<br>"; 
       echo"<script> alert('student data is added'); " 
       . "window.location='datasiswa.php';" 
       . "</script>"; 
      } else { 
       echo "Sql Error " . mysql_error() . " "; 
       echo"<script> alert ('Error'); " 
       . "history.back();" . "</script>"; 
      } 
     } 
    } 
} 

Thankyou для помощи.

+0

Является 'Эхо $ список'? –

+0

@EdvinTenovimas да, это определено –

+0

Вы показываете '

ответ

0

Ваша проблема заключается в том, что mysql_fetch_array()Возвращает массив ..., а не строку/значение.

Так что, когда вы делаете

if (($student2) >= ($cap)) 

Он всегда возвращается ложный (класс, если полный), как это сравнение 2 массивов, то есть.

if((array(name, count(name)) >= (array(capacity))) 

и не 2 значения, т.е.

if((count(name)) >= (capacity)) 

Что вам нужно сделать, это использовать имя столбца, чтобы получить фактическое значение для оценки, т.е. [ 'Класс'] определяется $student2["count(name)"]/$cap["capacity"]

$student = query("select name, count(name) from td_student where class='$class' "); 
    $student2 = mysql_fetch_array($student); 
    $capacity = query("select capacity from td_class where class='$class'"); 
    $cap = mysql_fetch_array($capacity); 

    if (($student2["count(name)"]) >= ($cap["capacity"])) { 
Смежные вопросы