私は何をしたいのですか? 'filename'という列にある特定の名前を検索し、その行に 'count'を表示したいとします。特定のMySQLフィールドを選択し、phpを使って表示します
これは説明するのに役立つかもしれない:
を私は「ファイル名」欄にパッケージを検索したいが、私はそれに「回数」を表示する(4)
IDファイル名の数
1パッケージ4
2別7
私は何をしたいのですか? 'filename'という列にある特定の名前を検索し、その行に 'count'を表示したいとします。特定のMySQLフィールドを選択し、phpを使って表示します
これは説明するのに役立つかもしれない:
を私は「ファイル名」欄にパッケージを検索したいが、私はそれに「回数」を表示する(4)
IDファイル名の数
1パッケージ4
2別7
$filename = 'Packages';
$result = mysql_query("SELECT `count` FROM `downloads` WHERE `filename` = $filename");
はまた、ファイル名は、ユーザの入力から来ることができる場合は、injection attacksを意識する必要があることに注意してください:このような表の結果を表示することができます。ここで
$filename = 'Packages'; // From user
$filename = mysql_real_escape_string($filename);
$result = mysql_query("SELECT `count` FROM `downloads` WHERE `filename` = $filename");
は、すべてのファイル名とカウントを選択して、テーブルに一覧表示例である:あなたが実際に望んでいると仮定すると、
$result = mysql_query("SELECT `filename` `count` FROM `downloads`");
?><table><tr><td>Filename</td><td>Count</td></tr><?php
while($row = mysql_fetch_assoc($result)){
?>
<tr><td><?php echo $row['filename']; ?></td><td><?php echo $row['count']; ?></td></tr>
<?php
}
?></table><?php
$count = mysql_num_rows($result)
echo($count)
さらに詳しくはPHP mysql documentationをご覧ください。特に、fetch()関数について知りたい場合は、クエリで取得するデータを表示するために使用します。
生のクエリは次のようになります。
select count(filename) from downloads;
編集:さて、あなたはページ上にループにそれらをしたい:
foreach($result as $i)
{
if(!empty($i))
{
echo "<div>$i['column_name']</div>";
}
}
$query = "SELECT count FROM downloads WHERE filename='Packages'";
EDIT:
$result = mysql_query($query, $con) or die(mysql_error());
$arr_down = mysql_fetch_assoc($result);
echo $arr_down["count"];
UPDATE :「Packages」を含む1つ以上の行に対して、
$con = mysql_connect("localhost", "MySQL_username", "MySQL_password") or die ("Unable to connect to MySQL Server " . mysql_error());
$fname = "Packages";
$query = "SELECT filename, count FROM downloads WHERE filename='" . $fname . "'";
$result = mysql_query($query, $con) or die(mysql_error());
$html = "<table>\n<tr><th>Filename</th><th>Count</th></tr>\n";
while ($row = mysql_fetch_assoc($result))
$html .= "<tr><td>" . $row['filename'] . "</td><td>" . $row['count'] . "</td></tr>\n";
$html .= "</table>\n";
echo $html;
は、各ファイル名のダウンロード数の報告である、あなたが使用する必要がありますSQLステートメントのGROUP BY句:
<?php
$res = mysql_query('SELECT id, filename, COUNT(*) AS count FROM downloads GROUP BY filename');
if (is_resource($res)) {
while (false !== ($row = mysql_fetch_assoc($res))) {
printf('%d - %s - %d', $row['id'], $row['filename'], $row['count']);
}
}
?>
これはうまくいきました。しかし、それはダウンロード数としてディスプレイ1だけですが、私はそれが4つのダウンロードを持っているテーブルを見に行くことができます... – Intecpsp
私の仮定は、テーブルが 'id'と 'filename'を列として持っていたということでした。したがって、カウントは同じファイル名を持つレコードの数を数えて生成されました。あなたとオクタンとの間の交換を見ると、テーブルには既に 'カウント'という列があるようです。そのような場合、私のSQLステートメントはマークを逃しています。 – kDjakman
私は 'id' 'filename'と 'count'を持っています。私が表示したいのはファイル名とカウントです。 – Intecpsp
クール仕事を続けて下さい。 –
この質問には[サンプルコード](http://sscce.org/)(ここではSQL文)がありません。サンプルは 'CREATE TABLE'と' INSERT ... VALUES'を使ってください。結果はコードの出力であり、コード自体ではないので、望ましい結果をサンプルコードとして提示する必要はありません。詳しくは、[完璧な質問を書く](http://tinyurl.com/so-hints)をご覧ください。 – outis