2016-03-31 7 views
2

で連想配列を返します:MySQLの - 私はこのようなMySQLのPDOクエリからPHP5配列を得るチャンスがあるかどうかを知る必要があり、クエリ

Array = (
    keywordID = 1321, 
    keyword = "Its a test", 
    position = Array(
     today = 12, 
     month = 17 
    ) 
) 

今、私は、このMySQLのクエリを持っている:

$sql = "SELECT 
       keywords.id AS keywordID, 
       keywords.keyword, 
       statistic.position 
      FROM 
       keywords 
      LEFT JOIN statistic ON (statistic.kid = keywords.id) 
      WHERE 
       keywords.uid = ? AND statistic.date IN (?, ?)"; 
    $stmt = WPStatsDB::getInstance()->prepare($sql); 
    $stmt->execute(array($array['userID'], date("d.m.Y", time()), date("d.m.Y", strtotime('-30 days')))); 
    $result = $stmt->fetchAll(); 

これはvar_dump($ result)の現在の結果です。

これは結果の1つです。私は私のポストにそれを書き込もうとします。

array(244) { 
... 

[1]=> 
    array(6) { 
    ["keywordID"]=> 
    string(4) "1978" 
    [0]=> 
    string(4) "1978" 
    ["keyword"]=> 
    string(20) "Weiterbildung in NRW" 
    [1]=> 
    string(20) "Weiterbildung in NRW" 
    ["position"]=> 
    string(2) "38" 
    [2]=> 
    string(2) "38" 
    } 
... 
} 

EDIT 1:

私だけではなく一つの値を持つintとして二つの値を持つ配列などの属性の位置を必要としています。データベースクエリが少なくて済むように、2つの属性を持つ配列としての位置が必要です。 今日と月は、今日の位置の情報と今日の1ヶ月前の位置からの値を持つ値です。

EDIT 2:

申し訳ありませんが、私はこのテーブルを編集することができないと言うのを忘れてました。テーブル統計には、すべてのドメインに接続されているすべてのキーワードの毎日の統計情報が含まれています。それはとても大きい。

私はこれをどのように解決できるのか本当にわかりません。

ありがとうございました! :-)

+0

'$ result'の結果は何ですか? –

+0

これは結果の1つです。私は私のポストにそれを書き込もうとします。 [1] => アレイ(6){ [ "keywordID"] => 列(4) "1978" [0] => 列(4) "1978" [ "キーワード"] => [1] => ストリング(20) "Weiterbildung NRWにおける" [ "位置"] => ストリング(2) "38" [2] => ストリング ストリング(20) "NRWでWeiterbildung" (2) "38" } – Skyxo

+0

何が問題なのですか?あなたは価値を得ていますか? –

答えて

0

これは、何が速いのかというと、多くの場合、関係のための別々のクエリを行う高速です。あなたのいずれか

1)各位置の行を取得し、あなたが結果

2を取得した後、それに対処

)は、各キーワードのループに移動して、それぞれに別々のクエリ上の位置を取得しますキーワード

3)MySQLではキーワードIDでグループを作成し、group_concatのようなもので検索します。その後、解析することができます。これは速く見えるかもしれませんが、おそらくあなたのデータセットに依存し、あなたが期待しているほど良くないかもしれません。

関連する問題