- ベストアンサー
クリック時にSQLを流したい
- phpを用いてDBから取得した情報を表示するプログラムがあります。URL部をクリックすると、DBにupdate文を流したいと考えています。
- 以前のプログラムでは遷移先のページでupdateしていましたが、今回は遷移先のページに手を入れることができず困っています。
- ご指導をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
このような方法でどうでしょうか。 URLがクリックされた時に、まず自分自身へ移動して、その際にURLを引き渡します。 自分自身へ移動してからURLをGETし、そのURLをキーにしてカウント処理を行い、その後、そのURLへ遷移します。 <?php if (isset($_GET["url"])){ //カウント処理 //(DB前処理) $sql = "UPDATE ITEM_LIST SET ITEM_COUNT=ITEM_COUNT+1 WHERE ITEM_URL='".$_GET["url"]."'"; $res = mysql_query($sql); //(DB後処理) //指定URLへ遷移 header("Location: ".$_GET["url"]); exit; }else{ //(DB前処理とループ) $Item .= "<table>"; $Item .= "<tr><td>".$row["ITEM_NM"]."</td></tr>"; $Item .= "<tr><td><a href=\"?url=".$row["ITEM_URL"]."\">".$row["ITEM_URL"]."</a></td></tr>"; $Item .= "</table>"; //(DB後処理) } ?> <html> <?=$Item?> </html>
その他の回答 (1)
- dell_OK
- ベストアンサー率13% (766/5722)
自分のURLを省略しても動作したので省略したままで、先の回答にしましたが、この部分で処理されます。 $Item .= "<tr><td><a href=\"?url=".$row["ITEM_URL"]."\">".$row["ITEM_URL"]."</a></td></tr>"; これで表示されたリンクをクリックすれば、自然と自分を呼び出すと思います。 もしうまくいかない場合は ?url= の前に 自分のURL を追加してください。 $Item .= "<tr><td><a href=\"自分のURL?url=".$row["ITEM_URL"]."\">".$row["ITEM_URL"]."</a></td></tr>";
お礼
ありがとうございます! Locationを用いて無事完成することが出来ました! もし、またどうしても分からないことがあった時は宜しくお願いします。
お礼
回答ありがとうございます。 なるほど、そうような方法があったんですね!! さっそく実践してみたいのですが「URLを保持して自分自身へ移動」は どのように行うのでしょうか? <Form action="自分" method="GET">しか思いつかないのですが、 これだと<input type="submit" value="">でしかページ遷移させる方法が分かりません。。。 submit 以外で遷移させることは出来るのでしょうか? 素人で申し訳ありませんが宜しくお願い致します。