• ベストアンサー

データベースから,そのレコードをどれぐらい利用されたかカウントしたい

ts3m-ickwの回答

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.2

No.1さんの回答が一番簡単ですね。 見た目がいまいちですが、リンクのURLに次のようなCGIの変数を付けておきます。 http://........./index.php?no=3 index.phpを表示したときに$noに3が入りますのでそれを利用します。 複数の変数があるときは http://........./index.php?no=3&nen=2008&tsuki=9 のように & でつなぎます。 <form>を利用していいなら <input type="hidden" name="no" value="3">のように変数を渡せるのですけどね。 ただ、PHPのバージョンによってはindex.phpの頭の方に extract($_POST); が必要だったり、セキュリティの関係で使用できなかったりしますのでご自身で確認してください。

参考URL:
http://www.google.co.jp/search?hl=ja&suggon=0&q=php+extract%28%24_POST%29&lr=lang_ja
ruisu2008
質問者

補足

 またまた素早い回答ありがとうございます。  <form>での利用ではないので,POSTやGETは利用できないだろうなと思いましたが,もう少し挑戦してみます。  もちろん,No.1さんの回答は分かりやすかったのですが,以下のように変更してもcountフィールドにカウントしてくれないので,いろいろと試してみたいと思います。 "<TD width='60%'><a href=$col[forlink] target=_blank onClick= 'update ○○○ set count = count + 1 where no = $col[No]'>$col[link]</a></TD>" .  忙しい中,ご指導いただきましてありがとうございます。

関連するQ&A

  • PHP+MYSQLで直近3件のデータ表示

    直近のデータを3件表示するのに $sql =" select * from テーブル order by フィールド(date型) desc limit 3" ; だとうまくいくのですが DATETIME形に変えるとうまくいかないのは、何か変な事してますでしょうか? $sql =" select * from テーブル order by フィールド(datetime型) desc limit 3" ; 他の箇所は両方とも全く一緒です。 データは入れてあります。 宜しくお願いいたします。 全文は書けなかったので <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql =" select * from mem order by rupdate desc limit 3" ; $rst = mysql_query($sql, $con); $recmax = mysql_num_rows($rst); $body = "<B>$recmax 件のデータがみつかりました。</B>"; $body .= "<TABLE border='1' cellpadding='2' cellspacing='0'> <TR> <TH bgcolor='#00CCCC'>会員ID</TH> <TH bgcolor='#00CCCC'>会員名</TH> <TH bgcolor='#00CCCC'>性別</TH> <TH bgcolor='#00CCCC'>ジャンル</TH> <TR>\n"; while($col = mysql_fetch_array($rst)) { $body .= "<TR>\n"; $body .= "<TD>" . $col["id"] . "</TD>\n"; $body .= "<TD>" . $col["name"] . "</TD>\n"; $body .= "<TD>" . $col"seibetu"] . "</TD>\n"; $body .= "<TD>" . $col["cate"] . "</TD>\n"; $body .= "</TR>\n"; } $body .= "</TABLE>\n"; mysql_free_result($rst); $con = mysql_close($con); ?> 以下 <?= $body ?> を貼り付けています

    • ベストアンサー
    • PHP
  • select文

    こんばんは。PHPでデータベースからレコードとフィールドを表として取り出そうとしてますが、うまく行きません。 MySQLへの接続はうまくいってると思うので、while文が間違ってるのでしょうか?PHPのバージョンはPHP Version 4.4.2です。 よろしくお願いしますm(__)m <?php require_once("dbini.php"); $con = mysql_connect($server, $user, $pass); $select = mysql_select_db($dbname, $con); $sql = "select * from book"; $rst = mysql_query($sql, $con); $body = "<table border='0' cellpadding='5' cellspacing='5' width='500'><tr><td>\n"; while($col = mysql_fetch_array($rst)) { $body .= "<b><font size='+2'>".$col["title"]."</font></b>" $body .= "</td></tr>"; $body .= "<tr><td colspan='2'>".$col["article"]."</td></tr></table>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <html> <body> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • テーブルの最後のレコードしか表示されない

    すごく初歩的な質問だと思い申し訳ないのですがご教授下さい。 タイトル通り、テーブルの最後のレコードしか表示されないのです。 この前までは全て表示できていたのですが、 どこをどういじったのか、このようなことになってしまいました。 itemというテーブルには53個登録があり、53番目のものしか表示されません… $sql = "select * from item order by id"; $rst = mysql_query($sql, $con); while($col = mysql_fetch_array($rst)) { $dbt = "<tr bgcolor='#FFFFFF'> <td align='center'><a href='use.php?key=".$col["name"]."'>".$col["name"]."</a></td> <td align='center'>".$col["name1"]."</td> <td align='center'>".$col["name2"]."</td> <td align='center'>".$col["name3"]."</td> <td align='center'>".$col["name4"]."</td> <td>".nl2br($col["name5"])."</td> <td align='center'>".$col["name6"]."</td> </tr>"; } mysql_free_result($rst); $con = mysql_close($con); それと、もう一つ解決したいことがあるのですが、 <a href='use.php?key=".$col["name"]."'>".$col["name"]."</a> のようにアンカーを張り、次のページに変数を渡す方法で、use.php?key=*****のように、表示させないことは可能でしょうか? 見た目にも悪いですし、セキュリティ上も好ましくないかと思いまして方法があればと思いました。

    • ベストアンサー
    • MySQL
  • 縦に長い<table>でなく横に長い<table>を組むためのfor文の書き方

    文末のコードを実行すると、下記のような結果が得られますが、 番号 名前 性別   1 阿藤 男   2 江藤 男   3 加藤 女   4 木藤 女   5 工藤 男 行列を入れ替えた表をつくりにはどういうロジックになりますか。 番号   1   2   3   4   5 名前  阿藤  江藤  加藤  木藤  工藤 性別   男   男   女   女   女 おそらく、for文を改造するのでしょうが・・・ よろしくお願い致します。 <?php $con = mysql_connect(SERVER, USER, PASS); $selectdb = mysql_select_db(DB, $con); $sql = "select * from mytable"; $rst = mysql_query($sql, $con); $recmax = mysql_num_rows($rst); $body = "<table border='1'><tr><th>番号</th><th>名前</th><th>年齢</th><tr>\n"; for ($i = 0; $i < $recmax; $i++) { $col = mysql_fetch_array($rst); $body .= "<tr>\n"; $body .= "<td>" . ($i + 1) . "</td>\n"; $body .= "<td>" . $col["name"] . "</td>\n"; $body .= "<td>" . $col["age"] . "</td>\n"; $body .= "</tr>\n"; } $body .= "</table>\n"; mysql_free_result($rst); $con = mysql_close($con); ?> <HTML><BODY> <?= $body ?> </BODY></HTML>

    • ベストアンサー
    • PHP
  • Mysqlから取り出した名簿データの名前をクリックして詳細を表示したい。

    はじめまして。PHP・mysql共に初心者の者です。どなたかお知恵をお貸しください。以下に環境を記します。 Windows2000/sp5 Apache/2.0.55 PHP/5.0.5 MySQL 5.0 簡単な名簿のデータ(ID・名前・年齢・生年月日・住所・電話番号)をMysqlから取り出してブラウザで表示させるだけなんですが、全て表示させるまでは成功しました。 この表示をID・名前・年齢だけにして、名前をクリックすると、その人だけのID・名前・年齢・住所・電話番号が表示されるようにしたいのです。 まったく勉強不足で申し訳ないのですが、行き詰ってしまいました。 どなたか具体的なソースをご教授ください。よろしくお願いします。 以下に、全てのデータ表示のためのソースをさらします。 <?php $dbserver = "localhost"; $dbuser = "root"; $dbpassword = ""; $dbname = "meibo"; $con = mysql_connect($dbserver,$dbuser,$dbpassword); mysql_query("set names sjis"); $selectdb = mysql_select_db($dbname); $sql = "select id, name, age, bday, address, tel, curdate(), (year(curdate())-year(bday)) - (right(curdate(),5)<right(bday,5)) as age from meibo_1"; $rst = mysql_query($sql); $body = mysql_num_rows($rst) . "件のデータがあります。. <br><br>"; $body .= "<table border='1'> <tr> <th NOWRAP>ID</th> <th NOWRAP>氏名</th> <th NOWRAP>年齢</th> <th NOWRAP>生年月日</th> <th NOWRAP>住所</th> <th NOWRAP>電話番号</th>  </tr>"; while ($col = mysql_fetch_array($rst)) { $body .= "<nobr><tr>" . "<td NOWRAP>$col[id]</td>" . "<td NOWRAP>$col[name]</td>" . "<td NOWRAP>$col[age]</td>" . "<td NOWRAP>$col[bday]</td>" . "<td NOWRAP>$col[address]</td>" . "<td NOWRAP>$col[tel]</td>" . "</tr></nobr>"; } $body .= "</table>"; mysql_free_result($rst); $con = mysql_close($con); ?> <!doctype html public "-//w3c//dtd html 4.01 transitional//en"> <html> <head> </head> <body> <?=$body?> </body> </html>

    • ベストアンサー
    • PHP
  • if文で、レコードが無い場合だけ変数が表示しなくなる

    いつもお世話になっています。 やりたい事から説明します。 リストボックスで絞込みを2段階にしています。 その2段階目で、レコードがあればきちんと表示するのですが 無い場合に、一段階戻したいのです。 やってみた事。 前のページから、POST で 【genreno = $sgenreno】を送っています。 うまく表示するのですが、レコードが無いときにうまく表示できません。 *レコードが無いので、前のページに戻るリンクを表示したいのです 下は私なりに書いてみたのですが、if文にしない時はうまくいくのですが if文にすると、レコードが無い場合にだけ変数が表示しません。 **変数以外の部分は表示するので、分岐は出来てると思うのですが 変な事をしているのだと思いますが、色々やってみてもうまくいきません。 宜しくアドバイスをお願いいたしますm(__)m <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); //1ページ当りの表示件数を設定します $PAGESIZE = 10; if (!isset($page)) { $sql = "select count(*) as cnt from テーブルA where genreno = $sgenreno"; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); $tcnt = $col["cnt"]; mysql_free_result($rst); $page = 1; } $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "$tcnt 件の登録があります。 " . "[" . ($PAGESIZE * ($page - 1) + 1) . "-"; if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "] を表示しています</p>"; } else { $pagehead .= "$tcnt] を表示しています</p>"; } //1ページ分だけ抽出するSQL文を組み立てます $sql = "select * from テーブルA where genreno = $sgenreno order by id desc limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE";    $rst = mysql_query($sql, $con); //結果セットからデータを読み込みます while($col = mysql_fetch_array($rst)) { $genreno=$col["genreno"];  $genre=$col["genre"]; $sgenre=$col["sgenre"]; } //△△△△△△△うまくいかないのはこの部分△△△△△△△ if($tcnt == 0 ){ $navi .= "<a href='1setubi_search.php?genreno=$genreno'>【".$genre."】"."</a>"."【".$sgenre."】は登録がありません。" ; } else{ $navi .= "今表示しているのは<a href='1setubi_search.php?genreno=$genreno'>【".$genre."】"."</a>"."【".$sgenre."】です。" ; //↑この行はレコードがある場合は表示します } mysql_free_result($rst); //△△△△△△△うまくいかないのはこの部分まで△△△△△△△

    • ベストアンサー
    • PHP
  • mysqlから取り出した検索結果にチェックボックスを付けたい。

    こんばんは。PHP・mysql共に初心者の者です。どなたかお知恵をお貸しください。以下に環境を記します。 Windows2000/sp5 Apache/2.0.55 PHP/5.0.5 MySQL 5.0 簡単な名簿のデータ(ID・名前・年齢・生年月日・住所・電話番号)をMysqlから取り出してブラウザで表示させるだけなんですが、全て表示させるまでは成功しました。 この表示をID・名前・年齢だけにして、各レコードの左端にチェックボックスを配置し、1件または複数件チェックを入れて「詳細を表示」ボタンをおすと、チェックを入れた人のID・名前・年齢・生年月日・住所・電話番号が表示されるようにしたいのです。 while文の中にチェックボックスを組み込んだり、色々と試行錯誤しましたがダメでした。 まったく勉強不足で申し訳ないのですが、どなたか具体的なソースをご教授ください。よろしくお願いします。 以下に、全てのデータ表示のためのソースをさらします。 <?php $dbserver = "localhost"; $dbuser = "root"; $dbpassword = ""; $dbname = "meibo"; $con = mysql_connect($dbserver,$dbuser,$dbpassword); mysql_query("set names sjis"); $selectdb = mysql_select_db($dbname); $sql = "select id, name, age, bday, address, tel, curdate(), (year(curdate())-year(bday)) - (right(curdate(),5)<right(bday,5)) as age from meibo_1"; $rst = mysql_query($sql); $body = mysql_num_rows($rst) . "件のデータがあります。. <br><br>"; $body .= "<table border='1'> <tr> <th NOWRAP>ID</th> <th NOWRAP>氏名</th> <th NOWRAP>年齢</th> <th NOWRAP>生年月日</th> <th NOWRAP>住所</th> <th NOWRAP>電話番号</th>  </tr>"; while ($col = mysql_fetch_array($rst)) { $body .= "<nobr><tr>" . "<td NOWRAP>$col[id]</td>" . "<td NOWRAP>$col[name]</td>" . "<td NOWRAP>$col[age]</td>" . "<td NOWRAP>$col[bday]</td>" . "<td NOWRAP>$col[address]</td>" . "<td NOWRAP>$col[tel]</td>" . "</tr></nobr>"; } $body .= "</table>"; mysql_free_result($rst); $con = mysql_close($con); ?> <!doctype html public "-//w3c//dtd html 4.01 transitional//en"> <html> <head> </head> <body> <?=$body?> </body> </html>

    • 締切済み
    • PHP
  • mysql_num_rowsなどのWarningの原因がわからない

    以下のプログラム、何が誤っているのでしょうか。 違う箇所で使ったPHPの使いまわし(そちらは問題なく動いている) なのですが、サーバー上で実行しても Warning: mysql_num_rows(): supplied argument is not a valid MySQL result ... Warning: mysql_free_result(): (以下同上) となり、どうしても原因が究明できません。。 以下、省略してますが、本質は変わりません。SQL文($sql)を phpMyAdminで通すとなんら問題なく問い合わせ結果が得られます。 <?php  $con = mysql_connect(localhost, username, pss);  $selectdb = mysql_select_db(mydb, $con);  $sql = "SELECT Kaisya FROM MYTABLE";  $rst = mysql_query($sql, $con);  $recmax = mysql_num_rows($rst);//■←この行がWarning■  $body = "<table border='1'>";  $body .= "<tr>";  $body .= "<td style=\"text-align: center;\">会社名</td>";  for ($recnum = 0; $recnum < $recmax; $recnum++) {   $col = mysql_fetch_array($rst);   $body .= "<tr>";   $body .= "<td>" . $col['Kaisya'] . "</td>";   $body .= "</tr>";  }  $body .= "</table>";  mysql_free_result($rst);//■←この行がWarning■  $con = mysql_close($con); ?> <html><head></head><body> <?= $body ?> </body></html>

    • ベストアンサー
    • PHP
  • DBからの値をリストアップするとき目印別にテーブルを組みたい

    ■ 環境 PHP 5.0.4 Win、MySQL mysql 4.0.14b Win ■知識レベル HTMLタグ打ち、初歩SQLは理解可、PHP他プログラミング知識なし 文末のソースで以下のようなリストを作ることはできたのですが: n冊みつかりました。 ―――――― 価格 書名 ―――――― 1000 ○○○ 2000 △△△   : ―――――― テーブルに含まれるpublisherというフィールドを目印に出版社別にテーブルを 組んで表示したいのですが、どのように書き換えたらよいでしょうか。 n冊みつかりました。出版社が n社 ありますので出版社別に分けて表示します。 ×社 ―――――― 価格 書名 ―――――― 1000 ○○   : ―――――― □出版 ―――――― 価格 書名 ―――――― 2000 △△   : ―――――― : <?php $con = mysql_connect(SERVER, USER, PASS); $selectdb = mysql_select_db(MYDB, $con); $sql = "select * from book"; $rst = mysql_query($sql, $con); $recmax = mysql_num_rows($rst); $body = "<B>$recmax 冊みつかりました。</B>"; $body .= "<TABLE> <TR> <TD>価格</TD> <TD>書名</TD> <TR>\n"; while($col = mysql_fetch_array($rst)) { $body .= "<TR>\n"; $body .= "<TD>" . $col["price"] . "</TD>\n"; $body .= "<TD>" . $col["title"] . "</TD>\n"; $body .= "</TR>\n"; } $body .= "</TABLE>\n"; mysql_free_result($rst); $con = mysql_close($con); ?> <HTML><BODY> <?= $body ?> </BODY></HTML>

    • ベストアンサー
    • PHP
  • リストから詳細画面に遷移するためのリンク作成と詳細画面の表示

    PHP5とMySQL4.0の組み合わせで、初歩的なことがわかりません。 例えば、(1)社員IDと、(2)年齢、(3)名前をリストアップする画面があるとして、 IDのところをハイパーリンクにして、それを押すとその社員の レコード内容を更新する画面を出す、みたいなことをしたいのですが、 これって method="POST" でなく、GETでやるのですよね? 「IDのリンク」とは、<a href="syain_detail.php?id=100">みたいなカタチに なるのでしょうが、具体的なスクリプトでご教示いただけないでしょうか。 単純に(IDへのリンクを考えずに)DBのレコードをPOSTでざーっと リストアップするHTMLまではできるのですが、 IDをハイパーリンクにして次の画面を構成するPHPがさっぱり わからないのです。下記、DBのサンプルと、わたしにわかるスクリプトです。 --------syainmaster---------- id   age  name ---------------------- 100   20   suzuki 200   24   sato 300   30   tanaka ----------------------- <?php   $con = mysql_connect(localhost, root, mypass);   $selectdb = mysql_select_db(mydb, $con);   $sql = "select * from syainmaster";   $rst = mysql_query($sql, $con);   $recmax = mysql_num_rows($rst);   $body = "<TABLE>";   for ($recnum = 0; $recnum < $recmax; $recnum++) {     $col = mysql_fetch_array($rst);     $body .= "<TR>";     $body .= "<TD>" . $col["id"] . "</TD>";     $body .= "<TD>" . $col["age"] . "</TD>";     $body .= "<TD>" . $col["name"] . "</TD>";     $body .= "</TR>";   }   $body .= "</TABLE>";   $con = mysql_close($con); ?> <HTML> <BODY> <?= $body ?> </BODY> </HTML>

    • ベストアンサー
    • PHP