2013-10-10 5 views
0

Я пытаюсь запустить sql-запрос, а затем отображать результаты в таблице. Это код, я используюПроблемы с функцией mysql_fetch_assoc()

$sql = "SELECT * FROM mt.o_details WHERE cusid = '$cusid[$j]' AND type ='$type'"; 
    $result = mysql_query($sql); 
    while($row = mysql_fetch_assoc($result)) 
    { 
      ......... 
     } 

ошибка, что я получаю это

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in......

Я повторил команду $ SQL, а затем запустить его вручную, так как запрос SQL и запрос возвращает предполагаемый и, следовательно, является успешным. Поэтому я не понимаю, почему я получаю это предупреждение, и массив строк пуст при запуске скрипта.

+0

Ваш запрос не выполняется, и он возвращает ошибку. –

+0

Запустите «echo $ sql;» перед тем, как выполнить его. Проблема, скорее всего, станет очевидной, переменная пуста или неправильное имя столбца. – Fluffeh

+0

@Hanky ​​웃 Panky, пожалуйста, еще раз прочитайте вопрос, я уже проверил, что запрос выполняется, когда я вручную вводим его в командной строке mysql. Переменная $ sql в echo выводится как 'SELECT * FROM mt.o_details WHERE cusid = '6' AND type = 'Shirt'', и при запуске этого запроса я получаю заданную строку, поэтому, я думаю, мы можем заключить, что часть запроса нормально –

ответ

1

Эта ошибка может возникнуть, если ваш запрос не возвращает результатов, или mysql_query не использует mysql_error(), чтобы узнать об ошибке.

$result = mysql_query($sql) or die(mysql_error()); 
0

Используйте приведенный ниже код, чтобы избежать ошибки:

$sql = "SELECT * FROM mt.o_details WHERE cusid = '$cusid[$j]' AND type ='$type'"; 
$result = mysql_query($sql); 
if(mysql_num_rows($result) > 0){ 
    while($row = mysql_fetch_assoc($result)) 
    { 
     ......... 
    } 
} 

Используйте mysql_num_rows, чтобы получить, что запрос возвращая некоторый результат или нет.

NOTE: don't use the mysql_* as it has been deprecated. Use the PDO or mysqli_*.

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