2016-08-20 48 views
1

我有一个页面出现一个列注册到一个类,在一个文本框上面写一个名字的一个alumn和一个按钮提交执行搜索的文本框,这些textobox用于bd搜索alumns仍然'在该班注册。如何隐藏MySQL查询的行?

当我搜索一个alumn,并且我注册了课程,更新了页面,但是当我做一个新的搜索时,仍然出现我之前注册的alumn。

我想使用此查询(在PHP)

$q = "select * from studentsubject where studid=$studid and classid=$classid"; 
$r = mysql_query($q); 

这些查询显示alumns注册到类,那么我想这样做的不良,表明仍然没有注册到alumns名单类并隐藏已经注册的列。

我尝试用存储过程:

DELIMITER $$ 

CREATE PROCEDURE getStudents(in classid_val int(11), in studid_val int(11)) 
BEGIN 

SELECT * from studentsubject WHERE classid=classid_val AND studid=studid_val 
SELECT FOUND_ROWS() 
IF FOUND_ROWS()>0 THEN 
select * from student where id=studid_val 
ELSEIF FOUND_ROWS()<0 THEN 
select * from student 
ENDIF; 


END$$ 

这些存储过程完成1/2的我想要做的,但是当我用文本框alumns是befored告诉的名字进行搜索它不工作。

+0

怎么样一个激动人心'union' – Drew

+0

顺便提及,在'mysql_ *'功能[不再支持或保持(http://stackoverflow.com/questions/12859942)。他们[在PHP 5.5.0中弃用](https://wiki.php.net/rfc/mysql_deprecation)和[在PHP 7.0.0中删除](http://php.net/manual/en/function.mysql -connect.php#function.mysql连接重refsynopsisdiv)。强烈建议您迁移到[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO_MySQL](http://php.net/manual/en/ref.pdo -mysql.php)。 – Pang

回答

0
SELECT x.* 
    FROM x 
    LEFT 
    JOIN y 
    ON y.some_criterion = x.some_criterion 
WHERE y.some_non_nullable_column = NULL