Я пытаюсь создать базовый сценарий PHP, в котором я могу вставлять данные в базу данных MYSQL, а затем, если такая опция уже существует, увеличивать ее на единицу. Пример:
Happy Bored
Name1: 1 0
Name2: 0 1
И если я снова выберу счастливый для Name1 и Name2, результат должен измениться на:
Happy Bored
Name1: 2 0
Name2: 1 1
Код HTML:
<select name = "moods">
<option value = "happy" selected = "selected">Happy</option>
<option value = "bored">Bored</option>
</select>
Вставить ... при обновлении повторяющегося ключа ...
Возможный дубликат «ВСТАВИТЬ ИГНОРИРОВАТЬ» против «ВСТАВИТЬ ... ПРИ ДВОЙНОМ ОБНОВЛЕНИИ КЛЮЧА»
не могли бы вы показать мне структуру таблицы
@Anfath Hifans таблица еще не существует, не стесняйтесь придумывать ее.






Создайте таблицу со следующими кодами
CREATE TABLE `tmp` (
`id` int(11) NOT NULL,
`Name1` varchar(256) NOT NULL,
`Name1_count` int(11) NOT NULL,
`Name2` varchar(256) NOT NULL,
`Name2_count` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `tmp` (`id`, `Name1`, `Name1_count`, `Name2`, `Name2_count`) VALUES
(1, 'Happy', 0, 'Happy', 0),
(2, 'Bored', 0, 'Bored', 0);
после создания таблица будет похожа на прикрепленное изображение
Следующий,
добавьте следующий sql-запрос в свои коды.
если вы используете PDO соединение, используйте как показано ниже,
$value = 'Happy';
$sql_1 = "UPDATE `tmp` SET Name1_count = Name1_count+1 WHERE `Name1` = ?";
$exec_1 = $pdo->prepare($sql_1)->execute([$value]);
$sql_2 = "UPDATE `tmp` SET Name2_count = Name2_count+1 WHERE `Name2` = ?";
$exec_2 = $pdo->prepare($sql_2)->execute([$value]);
если вы используете фреймворк codeigniter, используйте как показано ниже
$this->db->set("Name1_count", "Name1_count+1", false)->where(array('Name1' => $value))->update('tmp');
$this->db->set("Name2_count", "Name2_count+1", false)->where(array('Name2' => $value))->update('tmp');
Большое спасибо. Я создал таблицы, как вы сказали, к сожалению, я застрял в попытках понять, как это реализовать. Мой index.php сейчас в беспорядке: pastebin.com/Vf5p1zqS
@JacobK обновите вашу проверку отправки, используя следующие коды pastebin.com/zf3dBcnB
Спасибо! Я добавил это, и теперь он обновляет базу данных. Но проблема в том, что если я выбираю Happy для Name1 и Bored для Name2, он не обновляется. Извините за беспокойство. Текущий индекс: pastebin.com/sZMiAgYC
@JacobK. теперь вы используете 2 поля выбора, поэтому мы не можем назначить одно и то же имя для любого поля, мы можем изменить имя полей выбора или мы можем сделать поле выбора как поле массива ... так что здесь я делаю поле выбора как поле массива. Я добавил коды ... замените коды здесь. : pastebin.com/NP0Ev1rc
Спасибо, сэр, вы гений. Еще один вопрос, пожалуйста. После того, как я нажму кнопку отправки, как мне получить сохраненные результаты для каждого имени пользователя? Прямо как пример из основного поста. Спасибо !!!
@JacobK. вот ответ на ваш последний вопрос: pastebin.com/ZgRqLM0i Надеюсь, я ответил на все ваши вопросы. отметьте, пожалуйста, мой ответ полезен, если он вам пригодится :)
Я это уже пометил. Большое спасибо и извините, но не могли бы вы ответить мне на последний вопрос? Я пытаюсь отобразить информацию в плагине под названием DataTables. Я использовал что-то вроде этого, но ... я не знаю, как получить информацию из базы данных для заполнения строк. Спасибо!!! Index.php: pastebin.com/FVGD2xLt
@JacobK. посмотрите здесь, вы получите представление: w3schools.com/php/php_mysql_select.asp
К сожалению, мне не удалось отобразить базу данных в таблицах данных. :(
@JacobK. я не понял тебя. не могли бы вы объяснить это
«Я пытаюсь отобразить информацию в подключаемом модуле под названием DataTables. Я использовал что-то вроде этого, но ... я не знаю, как получить информацию из базы данных для заполнения строк. Спасибо !!! Index.php: pastebin.com/XYVPSsnJ "
вот код для перечисления значений, чтобы показать результаты, как вы упомянули в вопросе: pastebin.com/xdAecDtb
Спасибо за ответ, но, к сожалению, ничего не показывает. Ни каких ошибок в консоли. знак равно
По-прежнему не работает, но мой файл подключается к базе данных следующим образом: pastebin.com/rD2TWip2 Я не знаю, имеет это значение или нет, но другая информация (статика) отображается в таблице. Только тот из дб нет.
auto_increment.