Php 为什么这个条件不起作用?
我注意到第一个条件不起作用Php 为什么这个条件不起作用?,php,Php,我注意到第一个条件不起作用 if (empty($ss)) { echo "please write your search words"; } 但第二种情况确实如此 else if ($num < 1) { echo "not found any like "; else if($num
if (empty($ss)) {
echo "please write your search words";
}
但第二种情况确实如此
else if ($num < 1) {
echo "not found any like ";
else if($num<1){
echo“未找到任何类似项”;
完整代码:
<?php
require_once "conf.php";
$ss= $_POST["ss"];
$sql2=("SELECT * FROM student WHERE snum = $ss");
$rs2 = mysql_query($sql2) or die(mysql_error());
$num = mysql_num_rows($rs2);
if (empty($ss)) {
echo "please write your search words";
}
else if ($num < 1 ) {
echo "not found any like ";
}else {
$sql=("SELECT * FROM student WHERE snum = $ss ");
$rs = mysql_query($sql) or die(mysql_error());
while($data=mysql_fetch_array($rs)) {
?>
<div id="name">
<table align="center" border="3" bgcolor="#FF6666">
<tr>
<td><? echo $data ["sname"]." "."نتيجة الطالب"; ?></td>
</tr>
</table>
</div>
<div id="ahmed">
<table width="50%" height="50" align="center" border="2px" bgcolor="#BCD5F8">
<tr>
<td width="18%"><strong>جيولوجي</strong></td>
<td width="13%"><strong>تاريخ</strong></td>
<td width="13%"><strong>رياضة</strong></td>
<td width="14%"><strong>عربي</strong></td>
<td width="12%"><strong>علوم</strong></td>
<td width="30%"><strong>المادة</strong></td>
</tr>
<tr>
<td>100</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td><strong>الدرجة النهائية</strong></td>
</tr>
<td><? echo $data['geo']; ?></td>
<td><? echo $data['snum']; ?></td>
<td><? echo $data['math']; ?></td>
<td><? echo $data['arab']; ?></td>
<td><? echo $data['history']; ?></td>
<td><strong>درجات الطالب</strong></td>
</tr>
<tr>
<td colspan="5" align="center" valign="middle">
<? $sum= $data['geo'] + $data['snum'] +
$data['math'] + $data['arab'] +
$data['history'];
echo $sum ;
?>
</td>
<td><strong>مجموع الدرجات</strong></td>
</tr>
<tr>
<td colspan="5" align="center">
<?
$all=500 ;
$sum= $data['geo'] + $data['snum'] +
$data['math'] + $data['arab'] +
$data['history'];
$av=$sum/$all*100 ;
echo $av."%" ;
?>
</td>
<td><strong>
النسبة المئوية
</strong></td>
</tr>
</table>
</tr>
</div>
<?
}
};
100
100
100
100
100
النسبة المئوية
使用
而不是
if (empty($ss)) {
echo "please write your search words";
}
你确定$ss吗?也就是说,有一个名为ss的POST变量。你可以用它来测试
if (empty($ss) || !isset($ss)) {
echo "please write your search words";
}
或者在阅读post var时对其进行测试
if ((!isset($_POST["ss"]) || (!is_numeric($_POST["ss"])))
{
$ss = 0;//empty considers 0 as been empty
}
else
{
$ss = $_POST["ss"];
}
ss看起来也是一个数字,因此使用is\u numeric检查它是否是数字将有助于停止SQL错误,如果出于某种原因它不是。请尝试将条件更改为
if(empty($_POST['ss'])){ ... }
并继续使用$_POST['ss']而不是$ss
顺便说一句,开发时始终使用错误报告(E_ALL)。$sql=(“从学生中选择*,其中snum=$ss”)
删除包含查询的变量($sql1和$sql2)中的括号
应该是
$sql=“选择*来自学生,其中snum=$ss”
我想这就是为什么它会告诉您在…附近有一个错误,$ss的值是多少?因为-1不是空的(sidenote),您永远不应该信任用户提供的参数,并将它们添加到未初始化的SQL查询中。请看,您的代码是为SQL注入打开的。您不能将来自用户的参数直接传递到SQL查询中-使用intval()或者参数上的mysql_real_escape_string()(intval表示数字,m_r_s_e表示字符串)。var_dump($\u POST['ss')是什么
give you?我看到的消息是,您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,在第1行的“”附近使用正确的语法。这可能是因为您在第2行中使用了$ss=(“SELECT*FROM student WHERE snum=$ss”);如果您将$ss=$\u POST[“ss”];替换为我的第二个代码示例,那么在您检查之前,它会进行排序吗?很抱歉,我想写if(!isset($ss)){echo“请写下您的搜索词”}是的,我尝试了你的代码,但我看到的消息是,你的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获取第1行“”附近使用的正确语法。这是我的完整html php SQL代码plzzz帮助的链接
if(empty($_POST['ss'])){ ... }