2016-08-31 3 views
-3

쿼리의 결과 테이블을 PHP의 배열 var에 저장할 필요가 있으므로 나중에 쿼리에 자유롭게 사용할 수 있습니다.mysql 쿼리 결과 테이블을 PHP 배열에 저장하는 방법은 무엇입니까?

왜 모든 쿼리를 하나의 쿼리로 만들지는 모르지만 선호합니다. 이 방법은 혼합 된 쿼리를 작성하는 것이 매우 복잡하므로 스크립트에있는 것들을 정리하는 것이 더 명확 할 것이지만 솔루션을 찾을 수 없다면 먼저 시도 하겠지만 더 쉬운 방법을 먼저 찾도록하십시오 . 이러한 오류

$pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "SELECT * FROM image where ImageFolder not like 'Profile%' order by ImgTimeStamp asc LIMIT 10"; 
    $i = 0; //to use later in loops. 
    $imgdata = array(); 
    foreach ($pdo->query($sql) as $row) 
    { 
     $imgdata[][] = array("ImageID"=>$row['ImageID'],"ImageFolder"=>$row['ImageFolder'],"ImageExtention"=>$row['ImageExtention'],"ImageDescription"=>$row['ImageDescription'],"UserID"=>$row['UserID'],"RatesNumber"=>$row['RatesNumber'],"SumRates"=>$row['SumRates'],"ImgTimeStamp"=>$row['ImgTimeStamp'],"Tags"=>$row['Tags']); 
    } 
    Database::disconnect(); 

을하지만이 코드 $imgdata[$i]['UserID']와 그 배열을 사용하려고하면 그것은 나를 제공 : Notice: Undefined index: UserID in C:\wamp\www\DrawingArt\Accueil.php on line 34

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in C:\wamp\www\DrawingArt\Accueil.php on line 34

을 여기

내가 지금까지 한 일이다 PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\DrawingArt\Accueil.php on line 34

+0

여기서 __Undefined offset__ 오류를 가져 오기 위해 오프셋을 사용하고 있지 않습니다. 분명히 이것은 오류를 일으킨 코드가 아닙니다. – Sherif

+0

오류가 있음을 알고 있기 때문에 예외가 설정되어있는 것이 좋습니다. 문제는 아직 어디에서 왔는지 모르지만 해결할 수 있습니다. 더 깊이 파고 들자. – tadman

+0

@Sherif 그래, 난 그냥 마지막 오류 메시지를 coppied, 나는 4로 'UserID'를 변경 했어 문자열로 받아 들일 수 없다면 그것은 인덱스가 있어야합니다,하지만 난 후에 내가 여기에 게시 된 동일한 오류가 있었는지, 나는 눈치 그것은 immediatly하지만 그 이후로 인터넷 연결을 잃어버린 이유는 내가 전에 수정하지 않았다! –

답변

1

arr에 할당 할 때 키를 지정하지 않으면 ay, PHP는 다음으로 사용 가능한 가장 큰 정수 키를 기반으로 여러분에게 하나를 지정합니다. 할당 할 배열에 대괄호 []을 추가 할 때마다 해당 배열의 다른 차원으로 푸시됩니다.

$arr[][] = ["UserID" => "foo"]; 

var_dump($arr); 

당신에게 준다 그래서이 코드

...

 
    [0]=> 
    array(1) { 
    [0]=> 
    array(1) { 
     ["UserID"]=> 
     string(3) "foo" 
    } 
    } 
} 

공지 값 "foo"에 액세스 할 수는 여기에 당신은 $arr[0][0]["UserID"]하지 $arr[0]["UserID"]해야합니다. 루프가 아닌 후자를 원할 경우 루프에 값을 할당 할 때 대신에 $arr[] = ["UserID" => "foo"]을 사용하십시오.

+0

건배, 이제는 $ imgdata를 사용하는 모든 것이 효과적입니다. (남은 것도 고정) 대단히 감사합니다. D –