2016-08-31 10 views
-3

クエリの結果テーブルをPHPの配列varに保存する必要があるので、後でのクエリに自由に使うことができます。MySQLのクエリの結果テーブルをPHPの配列に保存するには?

なぜなら、このようにして、スクリプト内のものを整理するのがより明確になるので、混在したクエリを作成するのは非常に複雑ですが、私が解決策を見つけることができなければ、私はそれを試みようとしますが、 。私はこのコード$imgdata[$i]['UserID']でその配列を使用しようとすると

$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(); 

は、しかし、それは私にこれらのエラーを与える: 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 yeahちょうど最後のエラーメッセージが表示されましたが、私は 'UserID'を4で変更して文字列として受け付けるのではなく、インデックスでなければなりませんが、それはimmediatlyしかし、インターネット接続が失われて以来、それは私が以前に修正していない理由です! –

答えて

1

arrに割り当てる際にキーを指定しないとay、PHPは次に利用可能な最大の整数キーに基づいて1つを割り当てます。代入の配列に角括弧[]を追加するたびに、その配列の別の次元にプッシュします。

ので、このコードは...

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

var_dump($arr); 

あなたは...あなたは$arr[0][0]["UserID"]なく$arr[0]["UserID"]を必要とし、ここで値"foo"にアクセスするための

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

通知します。前者ではなく後者を使用する場合は、ループ内の値を割り当てるときには代わりに$arr[] = ["UserID" => "foo"]を使用します。

+0

うんざりして、今は$ imgdataを使っているすべてがうまくいきます。 (残っているものも修正しました)ありがとうございました:D –

関連する問題