Jump to content

Need help completing tagging input


devinkray

Recommended Posts

I am a bit confused but here is what ive done:

Users insert tags VIA a textarea IE:

| rap, hip-hop, jungle |

Then I explode the ones into an array, then I did a foreach statement to insert each into separate rows in the "tags_relations" table

Then I went ahead further and brought the tags back together to display in the textarea box on submit, so after a user submits those tags above it will show:

| rap, hip-hop, jungle |

in the textarea, so what I want to do now is make it easyer to delete the tag by just removing it from the textarea like(so the user deletes ", jungle" from the list:

| rap, hip-hop |

The problem is that I have no idea on how to remove the tag "jungle" from the tags_relations table, ive asked around and people told me to use array_diff, but ive try multiple times trying to get it to work but nothing

[code]<?php
require_once('include/bittorrent.php');
dbconn();
loggedinorreturn();

$act = $_GET[action];
  $torrentid = (int) $_GET['id'];
        if (!isset($torrentid) || !$torrentid)
          die();

if($act == "taketag") {
      $before = $_POST['tags'];
      //If nothing is in the box delete all the tags
      if(!$before)
        mysql_query("DELETE FROM tags_relations WHERE tagger_id=$CURUSER[id] AND torrent_id=$torrentid");
      //Make it lowercase
      $lower = strtolower($before);
      //Remove a comma if its the last char.
      $text = trim($lower);
      $last = $text{strlen($text)-1};
      if (!strcmp($last,",")){
        $text = rtrim($text, 'a..z');
        $text = rtrim($text, ',');
      }
              //Explode all tags into an array
      $tags = explode(',',$text);
              //Split each and do w/e to each one
      foreach($tags as $tag) {
                $tag = trim($tag);


        $tagsql = mysql_query("SELECT tag_id FROM tags WHERE tag_name='".mysql_escape_string($tag)."'") or die(mysql_error());
          $result = mysql_fetch_assoc($tagsql);

            if (!$result) {
              @mysql_query ("INSERT INTO tags (tag_name, tag_owner) VALUES ('".mysql_escape_string($tag)."', '".$CURUSER['id']."')") or die(mysql_error());
              $tagId = mysql_insert_id();
            } else {
              $tagId = $result['tag_id'];
            }
              @mysql_query ("INSERT INTO tags_relations (torrent_id, tag_id, tagger_id, tag_name) VALUES ('".$torrentid."', '".$tagId."', '".$CURUSER['id']."', '".mysql_escape_string($tag)."') ON DUPLICATE KEY UPDATE tag_id='".$tagId."',torrent_id='".$torrentid."', tagger_id='".$CURUSER['id']."'") or die(mysql_error());
            }
}

if($act == "reset") {
        mysql_query("DELETE FROM tags_relations WHERE torrent_id=$torrentid AND tagger_id = $CURUSER[id]");
        }

stdhead('Add Request Page');

$torrentid = (int) $_GET['id'];
if (!isset($torrentid) || !$torrentid)
  die();

$rre = mysql_query("SELECT * FROM tags LEFT JOIN tags_relations tr ON tr.tagger_id = $CURUSER[id] AND tr.torrent_id = $torrentid WHERE tr.tag_id = tags.tag_id ORDER BY tags.tag_name ASC");
while($arr = mysql_fetch_array($rre)){
      if ($tagsw)
      $tagsw .= ", ";
      $tagsw .= $arr['tag_name'];
        }


$res = mysql_query("SELECT name FROM torrents WHERE id=$torrentid");
$rawr = mysql_fetch_assoc($res);

?>
<form method="post" action="tag.php?id=<?=$torrentid?>&action=taketag">
<table width=750 cellspacing=0 cellpadding=5>
<tr><td colspan=2 class=tabletitle align=left><b>Tag <?=$rawr[name]?>.</b></td></tr>
<tr><td colspan=2 class=tableb align=left>Separate tags by a comma.  Ex.: punk, hardcore, ska<br>
<textarea value="<?=$tagsw?>" name="tags" rows="6" cols="80"><?=$tagsw?></textarea>
<tr><td colspan=2 class=tableb align=left>Click <a class=altlink href="tag.php?action=reset&id=<?=$torrentid?>">here</a> to remove all tags you have put on this torrent.</td></tr>
<tr><td colspan=2 class=tableb align=left><input type=submit value=Submit style='height: 20px'></td></tr>
</table>
</form>
<?
stdfoot();
die;
?>[/code]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.