致命错误:函数名必须是字符串?

时间:2015-06-01 16:53:38

标签: php mysql mysqli

我有这个代码用于搜索和显示来自mysql数据库的数据,我需要将此代码从mysql更改为mysqli,但我有错误,我试图解决它,但我不能。 我的错误类型是致命错误函数名称必须是字符串。 什么是字符串函数和致命错误? 我怎样才能再次避开它们

<?php        
 include('connection.php');  // connect to my database
 $submit = $_POST['submit']; // submit
  if ($submit){
    $search  =  $_POST['search'];
    if(!$search){ // if statment
    //echo'ادخل كلمة البحث';
    } else {
    $sql = "select * from students where St_nationalID ='$search' 
      or St_name='$search'
      or St_surname='$search'
      or St_dateOfBirth='$search'
      or St_certification='$search'
      or St_pointaverage='$search'";// select from my database values 
     $query = mysqli_query($conn,$sql); 
     if(mysqli_query($conn,$sql)){    // if statement
               $num_rows = mysqli_num_rows($query); //determine number of rows 
      if( $num_rows($query)>0){ // this's the line which have the fatal error 
        ?>
     <br><br><br><br><br>
     <div class="table">   //   div      
          <table>
                 <?php
                 echo"<th>الاسم</th>"; 
                 echo"<th>اللقب</th>";
                 echo"<th>تاريخ الميلاد</th>";
                 echo"<th>الرقم الوطني</th>"; 
                 echo"<th>الشهادة</th>";
                 echo"<th>سنة التخرج </th>";
                 echo"<th>المعدل العام</th>";   
                 echo"<th>القسم الدراسي</th>";

          while($row = mysqli_fetch_array($query)){ // while loop 
      //fetch values from my database

            $firstname   = $row['St_name'];
            $surname   =  $row['St_surname'];
            $dateofbirth   =  $row['St_dateOfBirth'];
            $nationalid   =  $row['St_nationalID'];
            $certification   =  $row['St_certification'];
            $graduation   =  $row['St_YearOfGraduation'];
            $pointaverage   =  $row['St_pointaverage'];
            $St_Dep_number   =  $row['St_Dep_number'];

            echo"<tr>";
            echo"<td style='border-bottom:1px solid  #000;background-color:#A9A9A9;'> $firstname  </td>"; 
            echo"<td style='border-bottom:1px solid  #000;'> $surname  </td>";
            echo"<td style='border-bottom:1px solid  #000;background-color:#A9A9A9;'> $dateofbirth  </td>";
            echo"<td style='border-bottom:1px solid  #000;'> $nationalid  </td>";
            echo"<td style='border-bottom:1px solid  #000;background-color:#A9A9A9;'> $certification  </td>";
            echo"<td style='border-bottom:1px solid  #000;'>  $graduation </td>"; 
            echo"<td style='border-bottom:1px solid  #000;background-color:#A9A9A9;'>  $pointaverage </td>"; 
            echo"<td style='border-bottom:1px solid  #000;'>  $St_Dep_number </td>";
            echo"</tr>";
           ?>
          </table>
          </div> // end of div
            <?php
          }


        } else{ // else statement 
        echo  " لا توجد نتيجة  ";
        }
      }
    }
  }
  exit; // close connection 
 ?>

2 个答案:

答案 0 :(得分:0)

这是错误的:if( $num_rows($query)>0){

正确:if($num_rows>0){

就是这个!

答案 1 :(得分:0)

在第

for()

你必须删除&#34; $&#34;,用它尝试使用$ num_rows变量执行一个函数,它是null(不存在)并抛出一个错误说明funcion name必须是一个字符串,&#34; null&#34;不是字符串。