Php 如何检查是否未设置$id

Php 如何检查是否未设置$id,php,Php,所以我得到了这段代码,我需要检查id是否未设置 $id = mysql_real_escape_string($_GET['id']); $genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id"); while($ge = mysql_fetch_array($genrer)) { if (!isset($_GET["id"])){ echo "Vælg en

所以我得到了这段代码,我需要检查id是否未设置

$id = mysql_real_escape_string($_GET['id']);
$genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id");
while($ge = mysql_fetch_array($genrer)) {
    if (!isset($_GET["id"])){
        echo "Vælg en underside";
    } else {
        echo "<div class='overskrift'><h2>" . $ge["overskrift"] . "</h2></div> <p>" . $ge["brodtekst"] . "</p>";
    }
}
$id=mysql\u real\u escape\u字符串($\u GET['id']);
$genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”);
while($ge=mysql\u fetch\u数组($genrer)){
如果(!isset($\u GET[“id”])){
回声“Vælg en底面”;
}否则{
回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }

当我在URL中键入
genrer.php?id=1
时,它工作正常,但当我只键入
genrer.php
时,它不会输出“Vælg en underm”

使其返回默认值

$id = mysql_real_escape_string(isset($_GET['id']) ? $_GET['id'] : '0');
$genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id");
while($ge = mysql_fetch_array($genrer)) {
    if (!isset($id)){
        echo "Vælg en underside";
    } else {
        echo "<div class='overskrift'><h2>" . $ge["overskrift"] . "</h2></div> <p>" . $ge["brodtekst"] . "</p>";
    }
}
$id=mysql\u real\u escape\u字符串(isset($\u GET['id'])?$\u GET['id']:'0');
$genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”);
while($ge=mysql\u fetch\u数组($genrer)){
如果(!isset($id)){
回声“Vælg en底面”;
}否则{
回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }
你能试试这个吗

    if (!isset($_GET["id"])){
         echo "Vælg en underside";
    } else {        
        $id = mysql_real_escape_string($_GET['id']);
        $genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id");
        while($ge = mysql_fetch_array($genrer)) {               
                echo "<div class='overskrift'><h2>" . $ge["overskrift"] . "</h2></div> <p>" . $ge["brodtekst"] . "</p>";                
        }
    }
if(!isset($\u GET[“id”])){
回声“Vælg en底面”;
}否则{
$id=mysql\u real\u escape\u字符串($\u GET['id']);
$genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”);
而($ge=mysql\u fetch\u数组($genrer)){
回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }
如果不将
id
传递给
genrer.php
,脚本就不会输出“Vælg en underm”,因为
$ge=mysql\u fetch\u数组($genrer)
从一开始就产生
false
,因此
循环的主体永远不会执行。

如果(!isset($GET['id'));!$u GET['id')){
if (!isset($_GET['id']) || !$_GET['id']){
    echo "Vælg en underside";
} else {
    $id = mysql_real_escape_string($_GET['id']);
    $genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id");
    while($ge = mysql_fetch_array($genrer)) {
        echo "<div class='overskrift'><h2>" . $ge["overskrift"] . "</h2></div> <p>" . $ge["brodtekst"] . "</p>";
    }
}
回声“Vælg en底面”; }否则{ $id=mysql\u real\u escape\u字符串($\u GET['id']); $genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”); while($ge=mysql\u fetch\u数组($genrer)){ 回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }
像这样使用:

if (!isset($_GET["id"])){
     echo "Vælg en underside";
} else { 
    $id = mysql_real_escape_string($_GET['id']);
    $genrer = mysql_query("SELECT id, overskrift, brodtekst FROM rb_genrer WHERE id=$id");
    while($ge = mysql_fetch_array($genrer)) {

            echo "<div class='overskrift'><h2>" . $ge["overskrift"] . "</h2></div> <p>" . $ge["brodtekst"] . "</p>";

    }
}
if(!isset($\u GET[“id”])){
回声“Vælg en底面”;
}否则{
$id=mysql\u real\u escape\u字符串($\u GET['id']);
$genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”);
while($ge=mysql\u fetch\u数组($genrer)){
回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }
$id=$\u GET['id'];
如果(isset($id)){
$genrer=mysql\u查询(“从rb\u genrer中选择id、overskrift、brodtekst,其中id=$id”);
while($ge=mysql\u fetch\u数组($genrer)){
回声“$ge[“overkrift”]”。“$ge[“brodtekst”]”。

”; } }否则 回声“Vælg en底面”; }
由于未设置$id,因此查询不会执行,因此while循环不起作用。这就是为什么它不回应Vælgen底面。 试试这个

if (!isset($_GET["id"])){
     echo "Vælg en underside";
} 

这是因为您没有ID,所以查询不会运行。Therfor no while循环和no if语句您正在检查while循环中的id,该循环将仅在有id时运行。如果将id设置为空,则查询将抛出错误。您应该使用“…其中id='$id'”;解决这个问题。此外,请记住,该问题有一个数字0的问题。PHP也将0标识为false。
if (!isset($_GET["id"])){
     echo "Vælg en underside";
}