我无法将从$ _GET []收到的值分配给变量

时间:2012-07-14 16:55:23

标签: php

我正在尝试使用$_GET[]选择ID并将其分配给变量,但它不起作用。当我尝试直接回显$_GET[]时,它可以很好地在页面上显示ID,但是当我将它分配给变量并尝试回显它时,它将无法正常工作。例如,这不会起作用:

$sel_hotel = $_GET[];
echo $sel_hotel; 

代码看起来很好没有任何问题,但它只是没有将该值传递给变量我相信我的php.ini文件可能有问题,但我不确定。我正在使用PHP版本5.4.3。请帮忙 。非常感谢你

<?php 
if(isset($_GET['hotl'])){
 $sel_hotel = $_GET['hotl']; 
 $sel_hotel ="";
 echo   $sel_hotel;
}elseif(isset($_GET['room'])){
 $sel_room = $_GET['room'];
 $sel_room ="";
 echo $sel_room;
}else{
$sel_hotel ="";
$sel_room ="";
}
echo  $sel_hotel;

?>
<?php require_once("includes/header.php");?>
<?php require_once("includes/function.php");?>
<?php //require_once("TheDatabase.php")?>
<?php $connection = mysql_connect("localhost","root","root");
       if(!$connection){
       die("Database Connection Failed :". mysql_error());
       }else{                               
              $db_select = mysql_select_db("travelnstay", $connection);
              if(!$db_select){
              die("Database Selection Failed:". mysql_error());
              }
        }
?>
<div class="Calign">
<div class="mar">
<div>
<p>Menu</p>
<?php
               $hotel_set = select_all_hotels(); 
                 while($hotel = mysql_fetch_array($hotel_set)){
                     echo "<p class=\"mar\"><a href=\"admincontent.php?hotl=" . 

urlencode($hotel["hotel_id"]).

                     "\">{$hotel["hotel_name"]}</a></span></p>";
                     $room_set = room_by_id($hotel["hotel_id"]);
                     echo "<ul>";
                     while($room= mysql_fetch_array($room_set)){
                     echo "<li><a href=\"admincontent.php?room=". urlencode($room["room_id"]).
                     "\">{$room["room_type"]}</a></li>";                  
                     echo"</ul>";
                     }  
                }


     echo "<p> Its is suppose to be here".$sel_hotel."</p>"; 
     echo "<p>". $sel_room. "</p>";


  ?>


</div><!--end of the mar-->
</div><!--end of the Calign-->
</body>

</html>

3 个答案:

答案 0 :(得分:3)

每次从$_GET设置变量时,都会在...后删除它们。

尝试:

<?php 
  $sel_hotel = "";
  $sel_room  = "";

  if(isset($_GET['hotl']))
  {
    $sel_hotel = $_GET['hotl']; 
    echo $sel_hotel;
  }
  elseif(isset($_GET['room']))
  {
    $sel_room = $_GET['room'];
    echo $sel_room;
  }

  echo $sel_hotel;
?>

答案 1 :(得分:1)

在两种情况下检索$ _GET值后重置变量 - 它们是空的,因为你正在清空它们。

答案 2 :(得分:1)

问题是,一旦设置了变量,就将它们清除为空字符串。第二行是问题:

$sel_hotel = $_GET['hotl']; 
$sel_hotel ="";

你想通过这种方式实现什么样的逻辑流程?我建议你只是删除那些行或将它们移到脚本的顶部,如果你需要确保它们在运行时是空的。