• ベストアンサー

タグ

プログラム初心者です PHPとMYSQLをつかって簡単なタグクラウドを付ける方法を教えてください。 考え方や大雑把な設計を教えてください タグをユーザーが自由に付けて、そのタグをクリックするとカテゴリのようにタグの付いた情報をまとめて取得できるようにしたいです タグを入力するときは、半角スペースで区切ると何個もタグが付けれるような感じです DBのテーブルのカラムはどんな感じにすればいいでしょうか? よろしくお願いします

  • flash0
  • お礼率97% (297/306)
  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

情報テーブル 情報id(PRIMARY) 内容 ---------------------- 1           あいあい 2           うううう タグテーブル タグid(PRIMARY) [情報id タグ](UNIQUE) ----------------------------------- 1           1    あ 2           1    い 3           2    う みたいな感じで格納して、JOINとWHEREを活用して取り出してみてはどうでしょうか。 http://www.pursue.ne.jp/jouhousyo/SQLDoc/select22.html

flash0
質問者

お礼

回答ありがとうございます とりあえず時間かけて作ってみます

関連するQ&A

  • imgタグによる参照元からのリファラ取得について

    レンタルサービスとして運営するための、 携帯(iモード)ウェブサイト用のアクセス解析をPHP + MySQLで開発しています。 解析用タグを統一し、全てのページに同じタグを書き込むだけで解析できるように設計したいと考えています。 設計の概要: 解析用タグは <img src="./analyze.png" /> です。 .htacessのmod_rewriteで./analyze.pngにアクセスすると./analyze.phpが参照される様設定します。 ./analyze.phpにアクセスされると、リファラを取得し、そのページにおけるアクセス解析データをDBに追加します。 この設計で開発していましたが、imgタグで参照するとどうもリファラが送信されないようです。 携帯ウェブサイト用なのでjavascriptやiframeは使用できません。 この条件下でリファラ情報を取得することはできませんか?

    • ベストアンサー
    • PHP
  • 2パターンのデータベース設計で最適なほうはどちら?

    こんにちは。 データベース設計をするにあたり、迷っています。 言語はRuby on rails、DBはMysqlです。 たとえば日記サイトを作るとして (1)テーブル : users , diariesがあって、それぞれのidはuser_diaries というリレーション用のテーブルを作って持たせる (2)テーブル : users , diariesがあって、diaries にuser_id というカラムを持たせる というような作り方ができると思うのですが、どちらが優れていると言えるでしょうか? 決めの問題でしょうか? 将来的に大きなサイトになっても大丈夫なようにしておきたいです

  • クイズ形式サイトの復習機能の構造

    ここのカテゴリでよいのか自信はないですが質問させていただきます。当方、PHP+MYSQLを使ってクイズ形式で学習問題(教科別)を提供するサイトを運営しています。 ユーザのアカウントを例えば間違った問題について、復習リストに記録してそれを元にしてDBから該当問題を順に取得し、問題に正解した場合はリストから削除するなどの機能を実現しているのですが・・・ DBのテーブルとしては ユーザ情報のテーブル 問題のテーブル があります。 やり方には2種類あるとおもうのですが・・・ 1.例えばユーザ情報のミス問題の番号を格納するフィールドを作成して、そのユーザ情報からミス問題リストを取得する方法。 2.問題テーブルに間違ったユーザのIDを記録するフィールドを作成し、復習する場合はMYSQLでユーザIDがミスフィールドに含まれいるものを検索する方法があると思います。 そこで、現在は1のやりかたで運用しているのですが、2に変更しようかなと思っています。理由は、教科別なので、PHPの配列でいろいろいじるより、問題リストを取得する際にMYSQLにやらせたほうが楽であろうと思うからなのですが・・・ 普通はこういうプログラムをする場合って、 プロ?の方はどのような制御をやられているのでしょうか? 簡略にまとめると各テーブルのフィールドはこんな感じです 1. user[ id/miss問題[22,339,292(問題id)] 2. user[ id ] 問題DB[ 問題/missuser[3922/2932(userid)]

    • ベストアンサー
    • PHP
  • DBの<a>タグを[url]タグへ変更したいのです

    DB内データの<a>タグを、全て[url]タグへ変更したいのですが、どうすればよいでしょうか? <経緯> ・ブログを移行したのですが、新しいブログでは、<a>タグを全てエスケープするので、該当データを[url]タグへ一括変換して、リンク表示させたい <変換したいこと> ・対象DB指定カラム(entry)内の、全ての「<a href="○○">△△</a>」を、「[url=○○]△△[/url]」へ変更したい <質問> ・どうやって、やるのでしょうか? ・UPDATE文を利用して、正規表現とかでやるのでしょうか? ・それとも、DUMPデータを取得して、秀丸で正規表現とかでやるのでしょうか? その場合は、どう書けば良いでしょうか? <環境> ・MySQL

    • ベストアンサー
    • MySQL
  • document.titleというものがありますが、titleタグに付

    document.titleというものがありますが、titleタグに付ける名前を定義できると思うのですけど、 metaのkeywordsを定義するものはあるのでしょうか。 以下のようなtitleを付ける為の仕組みがあります。 そのscript箇所に、 document.title = "<!--{$title_text}-->" + "|" + document.title; と同じような仕組みで、keywordsを定義する事はできませんでしょうか? どなたかご教示いただけると幸いです。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title; } setEventListener(window, 'load', html_load); //]]> </script>

  • 効率の良い検索

    WEBサイト上でPHPで用い検索できるようにしたいです。 DBのカラムに素材1から素材16まで登録できるようになっています。 素材1から16までは空欄の可能性があります。 検索のテキストボックスには、半角スペースで区切って複数の検索キーワードを入力できるようにしようとしています。 postで受け取った値を区切るところまでできましたが・・・。 この場合、どのように検索のSQLを書いたらいいでしょうか? MySQLを用いています。

    • ベストアンサー
    • PHP
  • カラムの末尾にスペースが入る

    VBAで固定長のファイルをテーブルに取り込みCSVファイルとしてカンマ区切りで書き出すというプログラムを作っています。 1111,55___,77____,5_____,77__,555____,999__      _はスペースのことだと思って下さい。 などといった感じのファイルを取り込むのですが、スペースを削除するためにTrimで切ってテーブルに取り込んでいるのですが、取り込むと必ずいくつかの決まったカラムに半角スペース6個分のスペースが入ってしまいます。 カラムの文字制限10で入力文字が2などなら、6個分のスペースが入り、 入力文字が7ならスペースは3つ入り、入力文字が10ならスペースは入らないという現象が起きています。 Trimで切っているのですから、入力文字が何文字であろうとスペースは入らないはずなのですが、決まったカラムにだけこの現象が起きています。 デバッグで見てみたところ、データを取得しているところでは、きちんとTrimで切られている形で取得することが出来ているのですが、テーブルの中を見ると半角スペースが上の規則で入っているというのが現在の現象です。 なぜこのようなことが起きるのか・・どなたか解決策が分かる方はいらっしゃいますでしょうか。お願いします。

  • テーブルのレコード数を取得したいのですが、返り値が1になってしまいます。

    最近MySQLやPHPを触り始めたものです。マニュアルを参考に、テーブルのレコード数を取得しようとしてみたのですが、返り値が1になってしまいます。なぜこのような結果になるのでしょうか? http://jp.php.net/manual/ja/function.mysql-num-rows.php : : $db = mysql_connect($db_host,$db_user,$db_password); mysql_select_db($db_name,$db); $count = mysql_query("select count(*) from $db_table", $db); $num_rows = mysql_num_rows($count); echo "<p>{$num_rows}</p>"; どこに問題があるのかわかりません……。初歩的なミスをしているのだと思うのですが、数時間このままの状態で困っています。

    • ベストアンサー
    • PHP
  • 長さ1の空文字列?

    タイトルの通り、長さ1の空文字列で困っています。 現在、Linux、Apache、MySQL、PHPを使って3階層アプリケーションを作っています。 予めMySQLでテーブルの形を決めておいて、CSVからデータを読み込ませておき、 PHPでSQL文を実行してレコードを取得することで、それらをユーザに表示という感じです。 複数あるカラムのうち、空文字列(CSV上でブランクだったもの)は表示させたくないので、 PHPで「 if(カラム=="")~ 」のように比較することで、空文字列だけ避けるつもりでした。 しかし上手くいかなかったので、strlen()で調べて見たところ、返り値が1でした。 本来は空文字列に対してstrlen()は0或いはfalseの返り値を返しますよね。 is_empty()でも空データ扱いにならず、当然NULLの扱いでもありません。 そのため、実データとの区別が出来ずに困っています。 何故、空文字列のカラムを除外したいかというと、 DB上のユニークなレコードを検索したいからです。 select * from where カラム='データ' and カラム='データ'… という風に。 「カラム=''」としてしまうと検索に引っかからなくなってしまいます。 どうすればよいでしょうか。 以下はそれぞれのバージョンです。 MySQL:5.0.95 PHP:5.1.6 Linux:RHEL5 Apache:2.2.3

    • ベストアンサー
    • PHP
  • wordpressでのタグ一覧について2つの質問

    ------------------------------------------------ ●質問1 ------------------------------------------------ 各カテゴリのページで、そのページに属するタグを一覧で表示させています。 現在はタグクラウドを使って一覧を表示させているのですが、下記URLにある形で現在のカテゴリーページに属するタグ一覧を取得する方法はありますか? http://daisukebe.net/get_terms-post_tag/ $this_cat = $cat; get_terms('post_tag', 'include='.$this_cat); を追加してみましたがダメでした。 ※ループ外です ※wpのバージョンは3.8です ------------------------------------------------ ●質問2 ------------------------------------------------ 上記で取得したタグ一覧で、 タグをクリックするとそのタグに関連する記事が一覧で表示されますが、 クリック時のカテゴリページに属する記事のみ取得することは可能ですか? 皆様よろしくお願い致します。

    • 締切済み
    • PHP