PHP : 경고 : sort ()는 매개 변수 1이 배열이고, 주어진 자원이 [duplicate]
PHPPHP : 경고 : sort ()는 매개 변수 1이 배열이고, 주어진 자원이 [duplicate]
정렬 () 함수를 사용하여 테이블 목록의 배열을 정렬하고 싶었지만 같은 종류의 경고가 나타납니다. 내 코드는 다음과 같습니다 :
<?PHP
require_once("lib/connection.php");
$result = mysql_query("SHOW TABLES FROM `st_db_1`");
sort($result);
foreach ($result as $result){
echo $result ;
}
?>
그리고 내가 얻는 경고는 다음과 같다.
Warning: sort() expects parameter 1 to be array, resource given in C:\wamp\www\Copy (4) of st_db_1\test_2.php on line 9
Warning: Invalid argument supplied for foreach() in C:\wamp\www\Copy (4) of st_db_1\test_2.php on line 10
해결법
-
==============================
1.경고는 매우 명확합니다 : mysql_query는 질의 결과가 아니라 자원을 가진 배열을 리턴하지 않습니다. 필요한 데이터를 반환하려면 (그리고 정렬 작업을 수행 할 수있는) mysql_fetch_array ()와 같은 함수가 필요하다.
경고는 매우 명확합니다 : mysql_query는 질의 결과가 아니라 자원을 가진 배열을 리턴하지 않습니다. 필요한 데이터를 반환하려면 (그리고 정렬 작업을 수행 할 수있는) mysql_fetch_array ()와 같은 함수가 필요하다.
mysql_query ()의 사용법은 http://nl3.php.net/mysql_query 매뉴얼을 참조하십시오.
어쩌면 관련이 없지만 ORDER BY
을 쿼리에 추가하여 MySQL에서 결과를 즉시 정렬 할 수 있습니다. -
==============================
2.변수 $ result는 결과 형식의 리소스 일뿐입니다. 예를 들어 결과 집합에서 데이터를 가져와야합니다. mysql_fetch_assoc ().
변수 $ result는 결과 형식의 리소스 일뿐입니다. 예를 들어 결과 집합에서 데이터를 가져와야합니다. mysql_fetch_assoc ().
$result = mysql_query("SHOW TABLES FROM `st_db_1`"); $array = array(); while ($row = mysql_fetch_assoc($result)) { $array[] = $row["Tables_in_st_db_1"]; } sort($array); foreach ($array as $item) { echo $item; }
-
==============================
3.상상할 수있는 가장 효율적인 코드를 제공하지는 못 하겠지만,이게 무슨 일이 벌어지고 문제가 해결되는지 분명히해야합니다.
상상할 수있는 가장 효율적인 코드를 제공하지는 못 하겠지만,이게 무슨 일이 벌어지고 문제가 해결되는지 분명히해야합니다.
$result = mysql_query("SHOW TABLES FROM `st_db_1`"); $my_array_of_table_names = array(); while ( $row = mysql_fetch_array($result, MYSQL_NUM)) { $my_array_of_table_names[] = $row[0]; } sort($my_array_of_table_names); foreach ($my_array_of_table_names as $table_name){ echo "$table_name\n"; }
-
==============================
4.문제는 실제로 쿼리에서 데이터를 가져 오지 못한다는 것입니다.
문제는 실제로 쿼리에서 데이터를 가져 오지 못한다는 것입니다.
mysql_query ()는 레코드 셋을 제공하지 않는다.
그것이하는 일은 데이터베이스를 쿼리하고 데이터를 얻기 위해 사용할 수있는 데이터베이스 리소스를 반환하는 것입니다.
필요한 것은 mysql_query ()를 호출 한 후 mysql_fetch_array () 또는 이와 비슷한 함수를 호출해야한다. (사용할 수있는 기능 범위가 있지만이 경우에는 아마도 가장 좋은 기능 일 것입니다). 그런 다음 $ 결과가 아닌 데이터를 sort ()하십시오.
-
==============================
5.분명히 말합니다 : 그것은 배열을 기대하고 당신은 다른 것을 전달합니다.
분명히 말합니다 : 그것은 배열을 기대하고 당신은 다른 것을 전달합니다.
$ 결과의 유형을 검사했다면 배열이 아니라는 것을 알았을 것입니다.
from https://stackoverflow.com/questions/6169146/php-warning-sort-expects-parameter-1-to-be-array-resource-given by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP MySQL의 Google 차트 JSON - 전체 예제 (0) | 2018.09.16 |
---|---|
PHP에서 쓰레드 안전하거나 쓰레드 안전하지 않은 것은 무엇입니까? (0) | 2018.09.16 |
문자열을 정수와 비교하면 이상한 결과가 나타납니다. (0) | 2018.09.16 |
잘못된 정수 (2147483647)가 MySQL에 삽입됩니까? (0) | 2018.09.16 |
가변 크기 변수 목록을 가진 MySQL Prepared 문 (0) | 2018.09.16 |