如何在php中比较两个变量

时间:2014-11-03 15:07:02

标签: php mysql

在我的情况下......一个变量来自其他页面通过get变量 我必须将其与我选择的现有变量进行比较 但我的技术不起作用 如果有人可以帮助我。 我想比较即将到来的变量与托儿所...但是当我尝试这不可能... 提前谢谢

<?php
include('config.php');
  $results =@$_GET['results'];

  $id =$_GET['id'];

 if ($results=="Nursery")
{
$qqqs = mysql_query("select * from result where u_id='$id'   sc='Nursery' ");

$rows=mysql_fetch_assoc($qqqs);
$a=$rows['u_id'];
$b=$rows['name'];
$c=$rows['fname'];
$d=$rows['reg'];
$e=$rows['sc'];
$f=$rows['ss'];
$g=$rows['se'];
$h=$rows['e1'];
$i=$rows['u1'];
$j=$rows['m1'];
$k=$rows['s1'];
$l=$rows['ss1'];
$m=$rows['i1'];
$n=$rows['e2'];
$o=$rows['u2'];
$p=$rows['e3'];
$pp=$rows['u3'];
echo "<html>
<head>
<link href='bootstrap/css/bootstrap.css' rel='stylesheet' >
<link href='bootstrap/css/bootstrap.min.css'  rel='stylesheet'>
<link href='bootstrap/css/bootstrap.theme.css' rel='stylesheet' >
<link href='bootstrap/css/bootstrap-theme.min.css' rel='stylesheet' >
</head>
<body>
 <table align='center' border='4' bgcolor='white' width='500' class='table table-bordered'>
 <tr>
  <td bgcolor='orange' colspan='3'><h2 align='center'>Leads Grammer School</h2></td>
  </tr>
   <tr>
  <td bgcolor='yellow' colspan='3'><h2 align='center'>Academic Performance Record Year 2014</h2></td>
  </tr>
  <tr>
<td align='right'>Student's Name:</td>
<td colspan='2'>$b</td>
</tr>
<tr>
<td align='right'>Father's Name:</td>
<td colspan='2'> $c</td>

</tr>
<tr>
<td align='right'>Registration NO:</td>
<td colspan='2'>$d</td>
</tr>
<tr>
<td align='right'>Student Class:</td>
<td colspan='2'>$e</td>
</tr>
<tr>
<td align='right'>Exams:</td>
<td colspan='2'>$f</td>
</tr>
 <tr bgcolor='gray'>
 <th>Subject Name</th>
 <th>Obtained Marks</th>
 <th>Grades</th>
 </tr>
 <tr>
 <tr ><td>English(Writing)</td>
 <td> $g</td>

 </tr>
 <tr>
 <tr ><td>Urdu(Writing)</td>
 <td>$h</td>

 </tr>
 <tr>
<tr ><td>Math(Writing)</td>
 <td> $i</td>

 </tr>
<tr><th align='center' colspan='3' bgcolor='orange'>General Knowledge</th></tr>
 <tr>
 <tr ><td>Science</td>

 <td> $j</td>

</tr>
<tr>
<tr ><td>S.Studies</td>
<td>$k</td>
</tr>

<tr>
<tr ><td>Islamiat</td>
<td>$l</td>
</tr>

<tr><th align='center' colspan='3' bgcolor='orange'>Poems</th></tr>
<tr>
<tr ><td>English </td>
<td> $m</td>
</tr>

<tr>
<tr ><td>Urdu</td>
<td>$n</td>
</tr>

<tr><th align='center' colspan='3' bgcolor='orange'>Book Reading</th></tr>
<tr>
<tr><td>English </td>
<td>$o</td>
</tr>

<tr>
<tr >
<td>Urdu</td>
<td>$p</td>
</tr>";
}
?>

2 个答案:

答案 0 :(得分:0)

  

我想将即将获得的变量与托儿所

进行比较

但是你正在与幼儿园进行比较

if ($results=="Nursery")

您是否知道该比较区分大小写?

此代码也很差。它应该只是

$results=isset($_GET['results']) ?  $_GET['results'] : NULL;

在学习新知识时不要使用错误抑制。

哦,How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

如果不使用框架,则应尝试使用过滤器功能。您将id的值直接放入未转义的查询中。这是一个等待发生的SQL注入。

$results = filter_input(INPUT_GET, "results", FILTER_UNSAFE_RAW);
$id = filter_input(INPUT_GET, "id", FILTER_VALIDATE_INT);

if (
    0 === strcasecmp($results, "Nursery")
    && is_int($id)
) {
    $qqqs = mysql_query("select * from result where u_id='$id' AND sc='Nursery' ");

    //...
}

如果在查询中使用整数,则必须知道它们是整数。如果你使用字符串,你必须正确地逃避它们。或使用准备好的陈述。