如何在一个页面中将变量从一个php代码块传递给另一个?

I am getting error to this probably, $result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);

I want to pass the value of select name="studcourse" class="form-control"** which is in variable $res and put it on the $result variable under **select name="studyear" class="form-control".

Can anybody help me?

<form method="post" action="<?php echo $_SERVER['$PHP_SELF'];?>">
<div class="form-group">
<label>Student Course</label> 
<select name="studcourse" class="form-control">

   <?php
     $result = mysql_query("Select setcours, course_desc from tblset, tbl_coursetype where tbl_coursetype.course_no=tblset.setcours group by setcours", $connection);

     if (!$result) {
     die("Database query failed: " . mysql_error());
     }
     // 4. Use returned data
     while ($row = mysql_fetch_array($result)) {  
     echo "<option value=\"{$row[0]}\">{$row[1]}</option>";  
     }
  ?>

  <?php
  $res="";
  $res=$_POST["studcourse"];
  ?>
</select> 
</div>

<div class="form-group">
<label>Student Year</label> 
<select name="studyear" class="form-control">

  <?php
     $result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);
     if (!$result) {
     die("Database query failed: " . mysql_error());
     }
     // 4. Use returned data
     while ($row = mysql_fetch_array($result)) {  
     echo "<option value=\"{$row[0]}\">{$row[1]}</option>";  
     }
?>
</select> 
</div>

You can pass one variable to another php using session variables :

<? Php 
session_start(); 
$z=3;
$_SESSION['var_name'] =$z;? >

Second php :

<? Php
session_start() ;
$x=$_SESSION['var_name'] ;? >

You need to define <?php $res ?> before starting html code as

<?php 
$res = '';
if($_POST['studcource']){
$res = $POST['studcource'];
}

    <form method="post" action="<?php echo $_SERVER['$PHP_SELF'];?>">
<div class="form-group">
<label>Student Course</label>
<select name="studcourse" class="form-control" onchange="document.form.submit();">
<?php
 $result = mysql_query("Select setcours, course_desc from tblset, tbl_coursetype where tbl_coursetype.course_no=tblset.setcours group by setcours", $connection);

 if (!$result) {
 die("Database query failed: " . mysql_error());
 }
 // 4. Use returned data
 while ($row = mysql_fetch_array($result)) {  
 echo "<option value=\"{$row[0]}\">{$row[1]}</option>";  
 }  ?>
</select> 
</div>
<div class="form-group">
<label>Student Year</label> 
<select name="studyear" class="form-control">
<?php
$result = mysql_query("Select setyear, YearName from tblset, tblyear where tblyear.ID=tblset.setyear group by setyear having tblset.setcours=".$res, $connection);
 if (!$result) {
 die("Database query failed: " . mysql_error());
 }
 // 4. Use returned data
 while ($row = mysql_fetch_array($result)) {  
 echo "<option value=\"{$row[0]}\">{$row[1]}</option>";  
 }
?>
</select> 
</div>

Apologies in advance if this is not what you meant but I interpreted the question to mean that you wish to populate the second dropdown menu based upon the selection made in the first dropdown menu. To that end ( not tested ) the approach below implements ajax to send a POST request to the same page that is then used in the sql query. The results of the sql query are then used to generate the options for the second dropdown menu...

<?php
    if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['studcourse'] ) ){
        /* Generate the html and send to javascript callback to insert into select menu */
        @ob_clean();

        $studcourse=mysql_real_escape_string( $_POST['studcourse'] );
        /*
            Possible alternative SQL
            ------------------------
            select s.`setyear`, yr.`YearName`
                from `tblset` s
                left outer join `tblyear` yr on yr.`id`=s.`setyear`
                where s.`setcours`='".$studcourse."'
                order by s.`setyear`;
        */
        $sql="select `setyear`, `YearName` 
                from `tblset`, `tblyear` 
                where `tblyear`.`ID`=`tblset`.`setyear` 
                group by `setyear` 
                having `tblset`.`setcours`='".$studcourse."';";

        $result=mysql_query( $sql, $connection );

        if( $result ){
            while( $row = mysql_fetch_array( $result ) ) { 
                echo "<option value='{$row[0]}'>{$row[1]}";
            }
        } else {
            echo '<option>No results';  
        }
        exit(); 
    }
?>

<html>
    <head>
        <title>Example - set select menu based upon value from previous select menu</title>
        <script type='text/javascript'>

            function cbstudyear(r){
                document.getElementById('studyear').innerHTML=r;
            }

            function setstudyear( event ){
                var el=typeof( event.target )!='undefined' ? event.target : event.srcElement;
                var value=el.options[ el.options.selectedIndex ].value;
                var req=new XMLHttpRequest();
                var headers={
                    'Accept': "text/html, application/xml, application/json, text/javascript, "+"*"+"/"+"*"+"; charset=utf-8",
                    'Content-type': 'application/x-www-form-urlencoded',
                    'X-Requested-With': 'XMLHttpRequest'
                };
                req.onreadystatechange=function(){
                    if( req.readyState==4 ) {
                       if( req.status==200 ) cbstudyear.call( this, req.response );
                       else console.warn( 'Error: '+req.status+' status code returned' );
                    }
                }
                req.open( 'POST', document.location.href, true );
                for( header in headers ) req.setRequestHeader( header, headers[ header ] );
                req.send( 'studcourse=' + value );
            }
        </script>
    </html>
    <body>

    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        <div class="form-group">
            <label>Student Course</label> 
                <select name="studcourse" id='studcourse' class="form-control" onchange='setstudyear(event)'>
                <?php
                    $result = mysql_query("select `setcours`,`course_desc` 
                                            from `tblset`, `tbl_coursetype` 
                                            where `tbl_coursetype`.`course_no`=`tblset`.`setcours`
                                            group by `setcours`;", $connection );

                    if( $result ){
                        while( $row = mysql_fetch_array( $result ) ) {  
                            echo "<option value=\"{$row[0]}\">{$row[1]}";  
                        }
                    } else {
                        echo "<option>Database query failed";
                    }
                ?>
                </select> 
        </div>

        <div class="form-group">
            <label>Student Year</label> 
            <select name="studyear" id='studyear' class="form-control">
            </select> 
        </div>
        <!--
            Other form elements here presumably ~ including submit button etc
        -->
    </form>

    </body>
</html>