PHP ile etiket (tag) sistemi nasıl yapılır?

PHP ile etiket sistemi yapmak için bir veritabanı kullanarak verileri depolayabilirsiniz. Örneğin, aşağıdaki kod bloğu bir veritabanında bir etiket sistemini oluşturacaktır:

if (isset($_POST['tags'])) {
  $product_id = (int)$_POST['product_id'];
  $tags = $_POST['tags'];

  foreach ($tags as $tag) {
    $tag = mysqli_real_escape_string($conn, $tag);

    $query = "SELECT * FROM tags WHERE name = '$tag'";
    $result = mysqli_query($conn, $query);

    if (mysqli_num_rows($result) > 0) {
      $row = mysqli_fetch_assoc($result);
      $tag_id = $row['id'];
    } else {
      $query = "INSERT INTO tags (name) VALUES ('$tag')";
      mysqli_query($conn, $query);
      $tag_id = mysqli_insert_id($conn);
    }

    $query = "INSERT INTO product_tags (product_id, tag_id) VALUES ('$product_id', '$tag_id')";
    mysqli_query($conn, $query);
  }
}

<form method="POST" action="">
  <input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
  <input type="text" name="tags[]" placeholder="Etiket 1">
  <input type="text" name="tags[]" placeholder="Etiket 2">
  <input type="text" name="tags[]" placeholder="Etiket 3">
  <button type="submit">Kaydet</button>
</form>

Bu kod bloğunda, bir form oluşturulur ve bu formda kullanıcının girdiği etiketler veritabanına kaydedilir. Form gönderildiğinde, etiketler veritabanındaki tags tablosuna kaydedilir ve eğer etiket zaten var ise sadece etiketin id’si alınır, yoksa yeni bir kayıt oluşturulur.

Yorum yapın