我注意到第一个条件不起作用
if (empty($ss)) {
echo "please write your search words";
}
但是第二个
else if ($num < 1) {
echo "not found any like ";
完整代码:
<?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>
<?
}
};
完整的代码链接是:
答案 0 :(得分:1)
使用
if (!isset($ss)) {
echo "please write your search words";
}
而不是
if (empty($ss)) {
echo "please write your search words";
}
答案 1 :(得分:1)
你确定$ ss isset?即有一个名为ss的POST变量。你可以测试一下。
if (empty($ss) || !isset($ss)) {
echo "please write your search words";
}
或在阅读后变量
时测试它if ((!isset($_POST["ss"]) || (!is_numeric($_POST["ss"])))
{
$ss = 0;//empty considers 0 as been empty
}
else
{
$ss = $_POST["ss"];
}
ss看起来也是一个数字,因此使用is_numeric检查它是否为数字将有助于阻止SQL错误,如果由于某种原因它不是。
答案 2 :(得分:0)
尝试将条件更改为
if(empty($_POST['ss'])){ ... }
并继续使用$ _POST ['ss']代替$ ss。
BTW开发时始终使用error_reporting(E_ALL)。
答案 3 :(得分:0)
$ sql =(“SELECT * FROM student WHERE snum = $ ss”);
删除包含查询的变量($ sql1和$ sql2)中的括号
应该是
$ sql =“SELECT * FROM student WHERE snum = $ ss”;
我认为这就是为什么它告诉你附近有错误的原因