php查询不检索任何数据


php query does not retrieve any data?

好吧,我想从mysql视图中提取一些数据,但wuery似乎没有检索到任何内容(即使视图中有数据(。

这是我一直在"玩"的代码(我使用的是adodb for 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和classics。(assigned_to是一个表,通过包含UID=userid和LID=lessonid,将每个用户连接到他教授的课程(。我想在这里做的是得到上课用户的名字+姓氏。想象一下,一个列表显示了每节课+谁根据该课的可用术语来教授它。

查看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()的文档。

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

几行之后。。。

$row = $get_teachers->fetchrow();

看看在实际打印任何内容之前如何调用fetchrow()两次?实际使用的每1行,就从结果集中删除两行。

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

而不要在循环中再次调用CCD_ 7。

因为您在循环中首先获取两次

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

你应该像这个一样使用它

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