Мне было интересно, как я могу обновить свои две таблицы базы данных, используя PHP и MySQL? Я хочу добавить вторую таблицу с именем tags_2 , которая проверит, существует ли уже тег, и добавляет ли он его к текущему счетчику в таблице, и если тег не существует, добавьте его в таблицу.
Надеюсь, я все правильно объяснил?
Мне в основном нужна помощь в добавлении правильного кода в нужных местах, это почему-то озадачило меня весь день? Я получил первый рабочий стол, но не второй?
Вот мои таблицы MySQL ниже.
CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
page TEXT NOT NULL,
tag VARCHAR(255) NOT NULL,
count INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE tags_2 (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
count INT NOT NULL,
PRIMARY KEY (id)
);
А вот мой PHP-скрипт ниже.
<?php
require_once ('./mysqli_connect.php');
if (isset($_POST['submitted'])){
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM tags");
if (!$dbc) {
print mysqli_error($mysqli);
}
$page = $_SERVER['SCRIPT_FILENAME'];
$tag = mysqli_real_escape_string($mysqli, $_POST['tag']);
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id, count, page FROM tags WHERE tag='$tag' AND page = '$page'");
if(mysqli_num_rows($dbc)){
$tag_info = mysqli_fetch_array($dbc);
$tag_info_id = $tag_info["id"];
$tag_info_count = $tag_info["count"] + 1;
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"UPDATE tags SET count='$tag_info_count' WHERE id='$tag_info_id'");
echo "$tag now with $tag_info_count instances";
} else {
$mysqli = new mysqli("localhost", "root", "", "sitename");
$clean_url = mysqli_real_escape_string($mysqli, $page);
$dbc = mysqli_query($mysqli,"INSERT INTO tags (tag, count, page) VALUES ('$tag', 1, '$clean_url')");
if (!$dbc) {
print mysqli_error($mysqli);
}
echo "1 record added";
}
mysqli_close($mysqli);
}
?>
Будут ли таблицы выглядеть лучше, как это.
CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
page TEXT NOT NULL,
tag VARCHAR(255) NOT NULL,
count INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE tags_2 (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL DEFAULT 0,
tag VARCHAR(255) NOT NULL,
count INT NOT NULL,
PRIMARY KEY (id)
);