2011-08-03 74 views
0

好吧,我想从mysql视图中提取一些数据,但wuery dos似乎没有检索任何东西(即使视图中有数据)。php查询不检索任何数据?

这里是我的代码已经被“耍”(我用ADODB的PHP)

$get_teachers=$db->Execute("select * from lecturer "); 

//$array=array(); 
//fill array with teacher for each lesson 
for($j=0;$j<$get_teachers->fetchrow();++$j){ 
    /*$row2 = $get_lessons->fetchrow(); 
    $row3=$row2[0]; 
    $teach=array(array()); 
    //array_push($teach, $row3); 
    $teach[$j]=mysql_fetch_array($get_teachers, TYPE); 
    //echo $row3;*/ 
    $row = $get_teachers->fetchrow(); 
    //$name=$row[0]+" "+$row[0]+"/n"; 
    //array_push($teach, $row1); 
    echo $row[0]; echo " ";echo $row[1]." "; 
    //$db->debug = true; 

} 

,如果我尝试类似“选择的名字,从用户的姓”,查询部分作品。部分我的意思是,虽然数据库中有2个用户,但循环只打印最后一个用户。

原始查询我想执行的是这个

$get_teachers=$db->Execute("select surname,name from users,assigned_to,lessons 
where users.UID=assigned_to.UID and lessons.LID=assigned_to.LID and 
lessons.term='".$_GET['term']."'"); 

,而是因为它没有似乎做任何事情,我试图用视图(当你在phpMyAdmin的执行该正常工作(通过更换GET部分从1到7的数字)

如果您想知道的是:users,assigned_to和lessons(分配的_to是一个表格,将每个用户连接到他通过包含UID = userid和LID = lessonid教授的课程)。我想在这里做的是获得教授课程的用户的名字+姓氏。想象一下,列出每个课程的列表以及教授它的人员b在课程可用的术语上。

+0

阅读文档 - 在第一页上的例子! HTTP://adodb.sourceforge。净/ – thetaiko

+0

谢谢大家:)我一定会更多地注意adodb文档。谢谢你的帮助 – George

回答

3

看着http://adodb.sourceforge.net/我可以如何使用图书馆看到的第一页上的示例:

$rs = $DB->Execute("select * from table where key=123"); 
while ($array = $rs->FetchRow()) { 
    print_r($array); 
} 

所以,你应该使用:的

while ($row = $get_teachers->fetchrow()) { 

代替:

for ($j = 0; $j < $get_teachers->fetchrow(); ++$j) { 

FetchRow()的想法是它返回序列中的下一行。它不会返回最后一行的编号,因此不应将其用作for循环中的条件。每次需要序列中的下一行时,应该调用它,并且当没有更多行时,它将返回false

另外,请查看FetchRow()的文档。

0

for($j=0;$j<$get_teachers->fetchrow();++$j){

...几行后...

$row = $get_teachers->fetchrow(); 

看你如何实际打印任何东西之前调用fetchrow()两次?您从结果集中为实际使用的每1个移除两行。

while ($row = $get_teachers->fetchrow()) { 

而不是在循环内再次调用fetchrow()

0

因为你先取两次循环

for($j=0;$j<$get_teachers->fetchrow();++$j){ 
    ... some code ... 
    // And here you fetch again 
    $row = $get_teachers->fetchrow(); 

你应该使用这样的

while ($row = $get_teachers->fetchrow()) {