0

私のデータベースは次のように設定されています。

posts
    post_id; primary_key
    title;
    content;
    date;
tags
    tag_id; primary_key
    post_id;
    tag_name;

このブログでは、ユーザーが YouTube などの独自のタグを投稿できるようにしています。たとえば、ユーザーが入力ボックスにタグを入力できるようにします。たとえば、ユーザーの種類は次のとおりです。Cat Dog Food。

このようにPHPに入力を配列に変換してデータベースに格納してもらいたい。

tags

    tag_id | post_id | tag_name
        1       1       Cat
        2       1       Dog
        3       1       Food

この文字列は、explode() を使用して配列に変換できると思います。ただし、クエリをデータベースに格納するように構造化するにはどうすればよいでしょうか。

私は基本的に、PHP が各タグを分解し、各タグを別々の行に格納することを望んでいます。

while ループを使用して各タグを投稿に取り込みます。

4

2 に答える 2

1

foreachループを使用します。すなわち

$string= "cat,lion";
$array= explode(",",$string);
foreach($array as $tag)
{
  mysql_query("INSERT INTO tags(tag_id,post_id,tag_name) VALUES('','$post_id','$tag')"); // run query to insert into tags table. $post_id is the corresponding post_id you have.
}
于 2013-04-18T04:08:21.173 に答える
0

tagsタグを保存する別のテーブルがあります。基本的に 2 つの列があります - tag_id | tag_name。次に、両方の列に複合主キーを指定してpost_tags呼び出されるテーブルを用意します。post_id | tag_id

次に、タグをコンマで区切り (スペースではなく、必要に応じてタグにスペースを含めることができるようにする)、配列上でexplode()andを使用して、最初にテーブルに格納し、次にテーブルに格納します。foreachtagspost_tags

tag_nameタグの重複を防ぐために、テーブル内に一意のインデックスを設定できます。テーブルtags内のプライマリ複合インデックスは、とにかく行post_tagsの重複を防ぎます。post_id | tag_id

于 2013-04-18T04:08:40.170 に答える