2012-03-28 2 views
0

私は何をしたいのですか? 'filename'という列にある特定の名前を検索し、その行に 'count'を表示したいとします。特定のMySQLフィールドを選択し、phpを使って表示します

これは説明するのに役立つかもしれない:

を私は「ファイル名」欄にパッケージを検索したいが、私はそれに「回数」を表示する(4)

IDファイル名の数

1パッケージ4

2別7

+3

クール仕事を続けて下さい。 –

+0

この質問には[サンプルコード](http://sscce.org/)(ここではSQL文)がありません。サンプルは 'CREATE TABLE'と' INSERT ... VALUES'を使ってください。結果はコードの出力であり、コード自体ではないので、望ましい結果をサンプルコードとして提示する必要はありません。詳しくは、[完璧な質問を書く](http://tinyurl.com/so-hints)をご覧ください。 – outis

答えて

2
$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 
+0

あなたはロールしています。これをテーブルにどのように表示するのですか? – Intecpsp

+0

@Intecpspすべてのファイル名とカウントを一覧表示するテーブルを用意しますか? – Paulpro

+0

Nah私はちょうどそれからの特定のデータがほしいと思うし、人々がそれを見ることができるページにそれを表示する。 – Intecpsp

0
$count = mysql_num_rows($result) 
echo($count) 

さらに詳しくはPHP mysql documentationをご覧ください。特に、fetch()関数について知りたい場合は、クエリで取得するデータを表示するために使用します。

+0

私は行を数えたくありません。列ファイル名の中で名前を検索した後に、countという名前の列を表示したいです。 – Intecpsp

+0

countという名前の列には何が入っていますか? – octern

+0

数字がついています – Intecpsp

0

生のクエリは次のようになります。

select count(filename) from downloads; 

編集:さて、あなたはページ上にループにそれらをしたい:

foreach($result as $i) 
{ 
    if(!empty($i)) 
    { 
    echo "<div>$i['column_name']</div>"; 
    } 
} 
1
$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; 
+0

「パッケージ」が入っている他の行はありますか? – Stefan

+0

いいえ、これは私が使用した例です – Intecpsp

+0

@Intecpsp:1行だけを表示したいですか? 1行から複数​​行への更新を参照してください。 – Stefan

1

は、各ファイル名のダウンロード数の報告である、あなたが使用する必要があります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']); 
    } 
} 

?> 
+0

これはうまくいきました。しかし、それはダウンロード数としてディスプレイ1だけですが、私はそれが4つのダウンロードを持っているテーブルを見に行くことができます... – Intecpsp

+0

私の仮定は、テーブルが 'id'と 'filename'を列として持っていたということでした。したがって、カウントは同じファイル名を持つレコードの数を数えて生成されました。あなたとオクタンとの間の交換を見ると、テーブルには既に 'カウント'という列があるようです。そのような場合、私のSQLステートメントはマークを逃しています。 – kDjakman

+0

私は 'id' 'filename'と 'count'を持っています。私が表示したいのはファイル名とカウントです。 – Intecpsp

関連する問題