2016-01-25 38 views
0

PHP中的此代碼始終返回false。PHP將GET值與表中的INT進行比較

我認爲這是我如何比較值的問題:

if (isset($_GET['materia']) and $_GET['materia']==$row['id_materia']){ 
      echo'<option selected="selected" value="http://www.gonzalohll.com/pedidos.php?curso=1&?materia='.$row['id_materia'] .'">'. $row['materia'] .'</option>';} 

      else { 
      echo'<option value="http://www.gonzalohll.com/pedidos.php?curso=1&?materia='.$row['id_materia'] .'">'. $row['materia'] .'</option>';} 
      } 

      echo '</select>'; 

關於這個問題的任何幫助很大apreciated。

+2

這看起來並不像完整的代碼段。 $ row ['id_materia']從哪裏來?另外我假設你沒有var_dump()編輯$ _GET ['materia']和$ row ['id_materia']中的值,然後告訴我們你得到了什麼。 – Andrew

+1

我很尷尬地說,我的錯誤是我如何使用GET方法發送變量。而已。 謝謝安德魯。 –

回答

0

您需要檢查您正在使用的變量的值,以查看「if」語句中發生了什麼。

例如,試試這個:

$id_materia = $row['id_materia']; 

if (empty($id_materia)){ 
    echo 'Incorrect value for id_materia'; 
} else { 
    echo 'id_materia: ' . $id_materia; 
} 

if (isset($_GET['materia'])){ 
    echo ". Value for materia (GET): " . $_GET['materia']; 
} else { 
    echo ". Materia (GET) not exists"; 
} 

echo '<select>'; 

if (isset($_GET['materia']) && $_GET['materia'] == $row['id_materia']){ 
    echo'<option selected="selected" value="http://www.gonzalohll.com/pedidos.php?curso=1&?materia='.$row['id_materia'] .'">'. $row['materia'] .'</option>';} 
else { 
    echo'<option value="http://www.gonzalohll.com/pedidos.php?curso=1&?materia='.$row['id_materia'] .'">'. $row['materia'] .'</option>';} 
} 

echo '</select>'; 
+0

我很尷尬地說,我的錯誤是我如何使用GET方法發送變量。而已。 謝謝艾倫。 –

+0

不客氣! :) – Allan