如何简化这个php脚本

如何简化这个php脚本,php,mysql,Php,Mysql,关于如何简化下面的php脚本,有什么建议吗?这是我之前的问题: 与此相关联的, 我在这里要做的是根据选中的复选框输出数据。 但是我的代码不是很好,如果两个结果满足条件,它会显示两个表。 正如您在下面的代码中所看到的,关于如何简化此过程,您有什么建议吗 $id = mysql_real_escape_string($_POST['idnum']); if ( $_POST['yr'] == 'year' and $_POST['sec'] == 'section' ){ $resul

关于如何简化下面的php脚本,有什么建议吗?这是我之前的问题: 与此相关联的, 我在这里要做的是根据选中的复选框输出数据。 但是我的代码不是很好,如果两个结果满足条件,它会显示两个表。 正如您在下面的代码中所看到的,关于如何简化此过程,您有什么建议吗

$id =  mysql_real_escape_string($_POST['idnum']);

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' ){
    $result2 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");

    echo "<table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>

        </tr>";

    while($row = mysql_fetch_array($result2))
    {
        echo "<tr>";
        echo "<td>" . $row['IDNO'] . "</td>";
        echo "<td>" . $row['YEAR'] . "</td>";
        echo "<td>" . $row['SECTION'] . "</td>";

        echo "</tr>";
    }
    echo "</table>";
}

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' and  $_POST['lname'] == 'lastname'){
    $result3 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");

    echo "<table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>
        <th>LASTNAME</th>

        </tr>";

    while($row = mysql_fetch_array($result3))
    {
        echo "<tr>";
        echo "<td>" . $row['IDNO'] . "</td>";
        echo "<td>" . $row['YEAR'] . "</td>";
        echo "<td>" . $row['SECTION'] . "</td>";
        echo "<td>" . $row['LASTNAME'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
}

mysql_close($con);
?>
$id=mysql\u real\u escape\u字符串($\u POST['idnum']);
如果($_POST['yr']='year'和$_POST['sec']=='section'){
$result2=mysql_查询(“从学生中选择*,其中IDNO='$id');
回声“
IDNO
年
部分
";
while($row=mysql\u fetch\u数组($result2))
{
回声“;
回显“$row['IDNO']”;
回显“$行['年]”;
回显“$行['节]”;
回声“;
}
回声“;
}
如果($\u POST['yr']='year'和$\u POST['sec']='section'和$\u POST['lname']='lastname'){
$result3=mysql_查询(“从学生中选择*,其中IDNO='$id');
回声“
IDNO
年
部分
姓氏
";
while($row=mysql\u fetch\u数组($result3))
{
回声“;
回显“$row['IDNO']”;
回显“$行['年]”;
回显“$行['节]”;
回显“$row['LASTNAME']”;
回声“;
}
回声“;
}
mysql_close($con);
?>

您应该将PHP与HTML结合使用,如下所示

<?PHP $id =  mysql_real_escape_string($_POST['idnum']);

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' ){
    $result2 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");
?>

    <table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>

        </tr>
<?PHP
    while($row = mysql_fetch_array($result2))
    {
        <tr>
        <td> <?PHP  echo $row['IDNO'] ?>
        <td> <?PHP  echo $row['YEAR'] ?></td>
        <td> <?PHP  echo $row['SECTION'] ?></td>

        </tr>
<?PHP   }  ?>
    </table>

<?PHP }

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' and  $_POST['lname'] == 'lastname'){
    $result3 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");
 ?>
    <table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>
        <th>LASTNAME</th>

        </tr>
<?PHP }
    while($row = mysql_fetch_array($result3))
    {
 ?>
        <tr>
        <td> <?PHP  echo $row['IDNO']  ?></td>
        <td> <?PHP echo $row['YEAR']  ?></td>
        <td> <?PHP echo $row['SECTION']  ?> </td>
        <td> <?PHP echo $row['LASTNAME']  ?> </td>
        </tr>";
<?PHP    }   ?>
    </table>
<?PHP }  ?>
<?PHP mysql_close($con); ?>

您应该将PHP与HTML结合使用,如下所示

<?PHP $id =  mysql_real_escape_string($_POST['idnum']);

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' ){
    $result2 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");
?>

    <table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>

        </tr>
<?PHP
    while($row = mysql_fetch_array($result2))
    {
        <tr>
        <td> <?PHP  echo $row['IDNO'] ?>
        <td> <?PHP  echo $row['YEAR'] ?></td>
        <td> <?PHP  echo $row['SECTION'] ?></td>

        </tr>
<?PHP   }  ?>
    </table>

<?PHP }

if ( $_POST['yr'] == 'year'  and $_POST['sec'] == 'section' and  $_POST['lname'] == 'lastname'){
    $result3 = mysql_query("SELECT * FROM student WHERE IDNO='$id'");
 ?>
    <table border='1'>
        <tr>
        <th>IDNO</th>
        <th>YEAR</th>
        <th>SECTION</th>
        <th>LASTNAME</th>

        </tr>
<?PHP }
    while($row = mysql_fetch_array($result3))
    {
 ?>
        <tr>
        <td> <?PHP  echo $row['IDNO']  ?></td>
        <td> <?PHP echo $row['YEAR']  ?></td>
        <td> <?PHP echo $row['SECTION']  ?> </td>
        <td> <?PHP echo $row['LASTNAME']  ?> </td>
        </tr>";
<?PHP    }   ?>
    </table>
<?PHP }  ?>
<?PHP mysql_close($con); ?>

虽然我不是一个PHP人士,但我会根据何时在表中包含姓氏列进行逻辑分析。是否希望此帮助和保持简化

$ShowLastName = ( $_POST['yr'] == 'year'  
                 and $_POST['sec'] == 'section' 
                 and  $_POST['lname'] == 'lastname');

$id =  mysql_real_escape_string($_POST['idnum']); 
$result2 = mysql_query("SELECT * FROM student WHERE IDNO='$id'"); 


echo "<table border='1'> 
        <tr> 
        <th>IDNO</th> 
        <th>YEAR</th> 
        <th>SECTION</th> ";

if( $ShowLastName )
        echo "<th>LASTNAME</th> ";

echo "</tr>"; 

while($row = mysql_fetch_array($result2)) 
{ 
     echo "<tr>"; 
     echo "<td>" . $row['IDNO'] . "</td>"; 
     echo "<td>" . $row['YEAR'] . "</td>"; 
     echo "<td>" . $row['SECTION'] . "</td>"; 

     if( $ShowLastName )
         echo "<td>" . $row['LASTNAME'] . "</td>"; 

     echo "</tr>"; 
} 
echo "</table>"; 

mysql_close($con); 
?> 
$ShowLastName=($\u POST['yr']=='year'
和$_POST['sec']=='section'
和$_POST['lname']='lastname');
$id=mysql\u real\u escape\u字符串($\u POST['idnum']);
$result2=mysql_查询(“从学生中选择*,其中IDNO='$id');
回声“
IDNO
年
第节”;
如果($ShowLastName)
呼应“姓氏”;
回声“;
while($row=mysql\u fetch\u数组($result2))
{ 
回声“;
回显“$row['IDNO']”;
回显“$行['年]”;
回显“$行['节]”;
如果($ShowLastName)
回显“$row['LASTNAME']”;
回声“;
} 
回声“;
mysql_close($con);
?> 

虽然我不是一个PHP人士,但我会根据何时在表中包含姓氏列进行逻辑分析。是否希望此帮助和保持简化

$ShowLastName = ( $_POST['yr'] == 'year'  
                 and $_POST['sec'] == 'section' 
                 and  $_POST['lname'] == 'lastname');

$id =  mysql_real_escape_string($_POST['idnum']); 
$result2 = mysql_query("SELECT * FROM student WHERE IDNO='$id'"); 


echo "<table border='1'> 
        <tr> 
        <th>IDNO</th> 
        <th>YEAR</th> 
        <th>SECTION</th> ";

if( $ShowLastName )
        echo "<th>LASTNAME</th> ";

echo "</tr>"; 

while($row = mysql_fetch_array($result2)) 
{ 
     echo "<tr>"; 
     echo "<td>" . $row['IDNO'] . "</td>"; 
     echo "<td>" . $row['YEAR'] . "</td>"; 
     echo "<td>" . $row['SECTION'] . "</td>"; 

     if( $ShowLastName )
         echo "<td>" . $row['LASTNAME'] . "</td>"; 

     echo "</tr>"; 
} 
echo "</table>"; 

mysql_close($con); 
?> 
$ShowLastName=($\u POST['yr']=='year'
和$_POST['sec']=='section'
和$_POST['lname']='lastname');
$id=mysql\u real\u escape\u字符串($\u POST['idnum']);
$result2=mysql_查询(“从学生中选择*,其中IDNO='$id');
回声“
IDNO
年
第节”;
如果($ShowLastName)
呼应“姓氏”;
回声“;
while($row=mysql\u fetch\u数组($result2))
{ 
回声“;
回显“$row['IDNO']”;
回显“$行['年]”;
回显“$行['节]”;
如果($ShowLastName)
回显“$row['LASTNAME']”;
回声“;
} 
回声“;
mysql_close($con);
?> 

您应该做几件事:

首先,您应该将显示代码与程序逻辑分离。 你真的应该使用一个模板引擎,比如

在第二步中,您应该将数据库代码移动到一个单独的类中

通过这种分离,您可以更清晰、更好地读取源代码。 现在,您可以对不同的业务案例做出更好的反应。
使用被调用的PHP文件作为控制器,它充当数据检索和输出之间的代理

你应该做几件事:

首先,您应该将显示代码与程序逻辑分离。 你真的应该使用一个模板引擎,比如

在第二步中,您应该将数据库代码移动到一个单独的类中

通过这种分离,您可以更清晰、更好地读取源代码。 现在,您可以对不同的业务案例做出更好的反应。
使用被调用的PHP文件作为控制器,它充当数据检索和输出之间的代理

不是答案,但如果您想使用
&&
而不是
,则需要调查sql注入攻击,并且您确实不想在互联网站上发布您的根MYSQL密码:)我想您不应该回显html标记。。。那太难看了。只需退出PHP,编写HTML,然后再次启动PHP块。但这只是一个风格问题。我看不出你的问题有什么不同。它应该是平等的吗?或者它应该有不同的WHERE子句?而且,你没有从前面的答案中学到什么。我觉得再回答你一次毫无意义。我没有从中了解到什么具体的答案?不是答案,但你想使用
&
而不是
,你需要调查sql注入攻击,你真的不想在互联网站上发布你的根MYSQL密码:)我想你不应该回显html标记。。。那太难看了。只需退出PHP,编写HTML,然后再次启动PHP块。但这只是一个风格问题。我看不出你的问题有什么不同。它应该是平等的吗?或者它应该有不同的WHERE子句?而且,你没有从前面的答案中学到什么。我觉得再回答你一次毫无意义。我没有从哪个具体的答案中学到什么?