使用php从数据库中获取值作为选项值

时间:2014-03-02 04:25:37

标签: php html

所以我正在做我们的论文,我需要将一些值从我的sql数据库传输到我的

这是示例代码:

    <tr>
        <td id="t" align="center">Subject: <select name="subj">
        <?php 
        $con = mysql_connect("localhost","root");
        if (!$con)
        {
        die('Could not connect: ' . mysql_error());
        }

        $db_selected = mysql_select_db("sps_ccp",$con);
        $college=$_SESSION['college1'];
        $sql="SELECT * FROM subject_db WHERE crs='$college'";
        $result=mysql_query($sql,$con);
        $count=mysql_num_rows($result);
        //echo $count;
        for($ctr=0;$ctr<$count;$ctr++)
        {
        $sql1="SELECT subject FROM subject_db WHERE crs='$college'";
        $subj=mysql_query($sql1,$con);
        $subj1=mysql_result($subj,$ctr);
        echo "<option value=".$subj1.">".$subj1."</option>";
        }
        ?>
</select>
</td>

而且我也有这个选项,我必须获得该选项值然后它将搜索我的数据库并获取该值并将其放入另一个选项中。

这是示例代码:

<tr>
    <td id="t">Building: <select name="build">
    <option value="hr">HR Building</option>
    <option value="pr">PR Building</option>
    <option value="gv">GV Building</option>
    </select>
    </td>
    <td id="t">Room: <select name="room">
    <?php
    if(isset($_POST['build'])){

        if($_POST['build']=='hr')
        {
            $hr = mysql_query("SELECT * FROM hrbuilding");
            $h1 = mysql_num_rows($hr);
            while(mysql_fetch_array($hr)){
            if(h1>0)
            {   
                echo "<option value=".$hr.">".$hr."</option>";

            }
            }
        }
    }
    ?>
    </td>

两者都没有奏效。它没有选项框上的值。我确实检查了我的数据库,我认为它没有任何问题。我问过有人如何处理这个问题,但他建议使用javascript,我真的无法理解它是如何工作的。 希望你能帮助我:)谢谢!

3 个答案:

答案 0 :(得分:0)

由于使用sessions时需要丢失的session_start();,第一段代码可能无效。由于它需要位于顶部,因此您会收到一条错误消息,指出headers already sent...因此您需要从PHP中分离HTML,将PHP置于最顶层,或将ob_start();放在session_start();之上{1}}

您的第二段代码很可能因为if(h1>0)而失败,因为if($h1 > 0)应该将$标记为$con = mysql_connect("localhost","root");

另外,在你的第一段代码中,你错过了以下密码参数:(如果它不是拼写错误

$con = mysql_connect("localhost","root","password");

应为:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

取自http://www.php.net/mysql_connect

的示例
mysqli_*

N.B。:请考虑切换到mysql_*功能。 {{1}}函数已弃用,将从以后的版本中删除。

答案 1 :(得分:0)

我认为你在这里有错误: 您从查询中获得结果,但您再次调用相同的查询但没有实际获取字段(仅查询的资源)。 value属性也缺少引用。

修复:

    $db_selected = mysql_select_db("sps_ccp",$con);
    $college=$_SESSION['college1'];
    $sql="SELECT * FROM subject_db WHERE crs='$college'";
    $result=mysql_query($sql,$con);
    $count=mysql_num_rows($result);
    //echo $count;
    while($row=mysql_fetch_assoc($result)) {
       echo '<option value="'.$row["subject"].'">'.$row["subject"].'</option>';
    }

同样在文件中使用会话时,请确保您正在呼叫session_start,这必须是您文件的最高位置,因为它是标头发送呼叫。

同样在你的第二个代码块中,你忘了在h1变量前加一美元。

修改

// very top of file
ini_set("display_errors",1);
error_reporting(E_ALL);

// now, just call your PHP code but in between 2 calls
ob_start();

...call your PHP code here

$buffer = ob_get_clean();
echo $buffer;    // what is here? place it so you can see on screen what it says

答案 2 :(得分:0)

希望这可以帮到你

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <select name="sample_s">
        <?php
            mysql_connect("localhost","root","your_password");
            mysql_select_db("db_name");
            if(mysql_errno())
            die("Database Server is Offline");
            $q=mysql_query("SELECT `id`, `opt` FROM `sample`");
            if(mysql_num_rows($q)){
                while($m=mysql_fetch_assoc($q))
                {
                    echo '<option value="'.$m["opt"].'">'.$m["opt"].'</option>';
                }        
            }    
        ?>
    </select>
</body>
</html>