2010-07-16 2 views
0

Я работаю над пользовательской CMS, внесли изменения в схему и уровень представления БД. Я получаю сообщение об ошибке относительно mysql_num_fields и mysql_num_rows, используя следующий раздел кода. Может ли кто-нибудь дать мне представление о том, почему эти ошибки возникают?mysql_num_fields(): поставленный аргумент не является допустимым ресурсом результата MySQL

public function viewTableData($db_name,$table_name,$fld01,$where_clause,$order_by,$asc_desc){ 

      mysql_select_db($db_name); 

     if($fld01!="") 
     { 

      $sql = "Select $fld01 from $table_name"; 

     } 
     else 
     { 

      $sql = "Select * from $table_name"; 

     } 

     if($where_clause!="") 
     { 

      $sql=$sql." ".$where_clause; 

     } 

     if(($order_by!="")&&($asc_desc!="")) 
     { 

      $sql=$sql." ".$order_by." ".$asc_desc; 

     } 
     else if(($order_by!="")&&($asc_desc=="")) 
     { 

      $sql=$sql." ".$order_by; 

     } 

     //return "<br/>sql :".$sql; 

     $result = mysql_query($sql); 

     $count_fields = mysql_num_fields($result); 

     $count_rows = mysql_num_rows($result); 

     if($count_rows>0) 
     { 
     $index = 0; 

      unset($this->data_array); 

      while ($row = mysql_fetch_assoc($result)) { 

      $this->data_array[] = $row; 

      } // while 

    //Finally we release the database resource and return the multi-dimensional array containing all the data. 

      mysql_free_result($result); 

      return $this->data_array; 
     } 

    } 
+1

Возможный дубликат [Warning: mysql_fetch_array(): предоставленный аргумент не является допустимым результатом MySQL] (http://stackoverflow.com/questions/795746/warning-mysql-fetch-array-supplied-argument-is-not -a-valid-mysql-result) –

ответ

1

Slap echo mysql_error(); линия после mysql_query линии, чтобы увидеть ошибки с сервера.

+0

Вот ответ, который я получил: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «LIMIT 0, 6» по строке 1 Однако в строке 1 этого файла php ничего не написано относительно Limit 0.6. Идеи? – SidC

+1

Удалите echo $ sql непосредственно перед запросом, чтобы убедиться, что запрос - это то, что вы думаете. –

+0

Сюжет сгущает банду: После эха в $ sql у меня теперь есть ошибка, указывающая select * from invoice, где id = Limit 0,6. Идеи о том, где предел 0,6 исходит из приведенного выше фрагмента? Спасибо! – SidC

0

Вы не тестируете $ результата, который может быть FALSE при возвращении из mysql_query()

Кроме того, я хотел бы переписать:

if($order_by!="") 
{ 

    $sql.=" ".$order_by." ".$asc_desc; 

} 

MySQL не заботится о дополнительных пространствах здесь и там ,

Смежные вопросы

 Смежные вопросы