0

私はデータベースから配列を作成する方法に熱心ではありません。それらを学ぶことを避けようとしましたが、どうやらそれは今のところ必要です。

基本的に、私のデータベースは数百万行で構成されています。プレーヤー名とスナップ(Unix TimeStamp)は通常「複製」されますが、これらの行(city、x、yなど)のデータは異なります。

理想的には、ステートメントを介して配列を作成する方法を理解しようとするとSELECT、次のようになります。

出力、次のようになります。名前=スナップ=>(その日の都市の数)、スナップ=>(別の日の都市の数)..など。

ここでの質問は、名前を1回プルし、スナップに基づくカウントで複数のスナップをプルするための適切な配列「コマンド」(これを呼び出す場合)は何ですか。

私のSELECTは行きます:

// SELECT count(*), player, snap
// FROM DB WHERE GROUP BY snap, player ORDER BY snap, player DESC
while ($row = fetch_assoc($Result) {
     // How you go about putting array here?
}
4

4 に答える 4

2

これは次のように行われます。

$Result = mysql_query("SELECT count(*) as count, player,
     snap FROM DB GROUP BY snap, player ORDER BY snap, player DESC");
while ($row = mysql_fetch_array($Result) {
  print_r( $row );
  echo "This is the count value -> " . $row['count'];
}
于 2012-04-26T08:40:13.953 に答える
1

基本についてもう少し読む必要があるというコメントに同意しますが、多次元配列を作成するには、次のようなことを行うことができます。

<?php

$results = array();

$Result = 'SELECT count(*),player,snap FROM DB WHERE GROUP BY snap,player ORDER BY snap,player DESC';
while ($row = fetch_assoc($Result){
  if (!isset($results[$row['player']][$row['snap']]) {
    $results[$row['player']][$row['snap']] = 0;
  }
  $results[$row['player']][$row['snap']] += $row['count(*)']; 
}

?>
于 2012-04-26T08:45:12.980 に答える
0

これらを最初に試してください:-

  1. http://phpsense.com/2006/php-mysql/
  2. http://www.freewebmasterhelp.com/tutorials/phpmysql

SQLの基礎も必要です。

于 2012-04-26T08:42:46.710 に答える
0

あなたが試すことができます

$sql = "SELECT count(*) as count, player,
        snap FROM DB GROUP BY snap, player ORDER BY snap, player DESC";

/* Connect To Database */
$mysqli = new mysqli ( "localhost", "username", "password", "database" );

/* check connection */
if ($mysqli->connect_errno) {
    printf ( "Connect failed: %s\n", $mysqli->connect_error );
    exit ();
}

$result = $mysqli->query ( $sql );
$array = array();
if ($result) {
    while ( $row = $mysqli->fetch_assoc ( $result ) ) {
        $array[$row['player']] += $row['count'];
    }

    print_r($array); // Return array
}
于 2012-04-26T08:49:12.293 に答える