首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从表单中获得选项值

问无法从表单中获得选项值
EN

Stack Overflow用户
提问于 2016-11-24 18:21:40
回答 1查看 38关注 0票数 2

我无法从表单中获得选项值,以将其传递给我的操作代码。

表格:

代码语言:javascript
复制
<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>

我想使用它来检查我的类表中的类容量,如果这个类处于满负荷状态,它将抛出一个错误,否则将成功地添加学生数据。但是,我的操作代码似乎无法获得给定的类输入,当我提交按钮来添加学生数据时,它总是会抛出一个错误,说明类已经满了,尽管它还没有满。以下是我的行动守则,我迄今所做的:

代码语言:javascript
复制
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>";
            }
        }
    }
}

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-24 18:49:38

您的问题是mysql_fetch_array()返回一个数组.,而不是字符串/值。

所以当你这么做

代码语言:javascript
复制
if (($student2) >= ($cap ))

它总是返回false (类如果满),因为它比较两个数组,即。

代码语言:javascript
复制
if((array(name, count(name)) >= (array(capacity)))

而不是两个价值,即。

代码语言:javascript
复制
if((count(name)) >= (capacity))

您需要做的是使用列名来获得要计算的实际值,即。$student2["count(name)"]/$cap["capacity"]

代码语言:javascript
复制
    $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"])) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40792661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档