Вставка данных в MySQL с использованием JQuery да или нет голосования

Как я могу обновить базу данных, добавив выбор пользователей? У меня есть два поля в базе данных для этой цели, когда пользователь нажимает «да», он обновляет (полезное) поле и (не_полезно), если не нажимать ни одну кнопку. Я очень новичок в JavaScript, поэтому, пожалуйста, будьте терпеливы! 🙂 Я ценю любую помощь заранее.

PHP

<?php
require 'db/conn.php':
$id = (int)$_GET['id'];

if($result = $db->query("SELECT * FROM table_user WHERE table_user_id = $id")){
if($result->num_rows){
while($row = $result->fetch_assoc()) {
echo "<div class='rating'>
<center>
<p>Are you alrite " . $row['table_user_name'] . "?</p>
<div>
<button type='button' id='yes'>Yes</button>
<button type='button' id='no'>No</button>
</div>
</center>
</div>
<div class='1' style='display:none;'>Text YES</div>
<div class='2' style='display:none;'>Text NO</div>
";
}
}
}
?>

JS

$(document).ready(function(){
$("#yes").click(function(){
$(".rating").hide();
$(".1").show();
});
$("#no").click(function(){
$(".rating").hide();
$(".2").show();
});
});

0

Решение

Вы не можете подключить свою базу данных MySQL напрямую через JavaScript из клиентского браузера. Если это возможно, вы действительно не хотите этого делать, потому что вам придется включить учетные данные для входа в MySQL в JavaScript, который подается на клиентские компьютеры.

Конечно, вы можете использовать базу данных, такую ​​как LocalStorage, из JavaScript, но эти базы данных находятся на клиентском компьютере. Если я правильно понял, это не то, что вы ищете.

Вы должны отправить данные в скрипт на вашем сервере, который затем вставит их в базу данных mySQL. Как вы заявили, вам не нравится, когда браузер перезагружается, просто отправка формы не подходит. В этих случаях используется AJAX. Вы найдете несколько руководств по отправке данных с помощью JavaScript / JQuery с использованием AJAX на ваш сервер.

На стороне сервера вы можете работать, например, с PHP-скриптом. Код, который вы разместили на свой вопрос, не PHP, а простой HTML. Фред -ii- опубликовал несколько примеров операторов SQL для увеличения столбца. Я бы порекомендовал вам использовать PHP PDO с MySQL драйвер так как это поможет вам предотвратить проблемы с безопасностью.

0

Другие решения

После некоторой усердной работы я нашел решение. Обмен для тех, кто сталкивается с подобной проблемой. Это было мое решение. В любом случае, получайте удовольствие! 😉

Я думаю, что есть лучший способ организовать JS-скрипт для взаимодействия с php-файлами, которые управляют SQL-скриптами. Если кто-то хотел бы помочь оптимизировать его, будем рады.

PHP основной

<?php
require 'db/conn.php':
$id = (int)$_GET['id'];

if($result = $db->query("SELECT * FROM table WHERE user_id = $id")){
if($result->num_rows){
while($row = $result->fetch_assoc()) {
echo "<div class='rating'>
<center>
<p>Are you alrite " . $row['user_name'] . "?</p>
<div id='rating-div'>
<a href='#' id='yes' class='custom-btn'>Yes</a>
<a href='#' id='no' class='custom-btn'>No</a>
<input type='hidden' id='" . $id . "' />
</div>
</center>
</div>
";
}
}
}
?>

JS

$(function(){
$('#yes').on('click', function(e){
e.preventDefault();

var usr_id = $('#rating-div input').attr('id');

$.ajax({
url: 'db/rating-yes.php',
type: 'post',
data: {'action': 'rating', 'usr_id': user_id},
success: function(data, status){
if(data == "ok"){
$('.rating').html('<p>Nice!</p>');
}//end of if
},//end of success function
error: function(xhr, desc, err){
console.log(xhr);
console.log("Details: " + desc + "\nError: "+ err);
}
});//end of ajax
}); //end of onclick function
}); //end of main function

$(function(){
$('#no').on('click', function(e){
e.preventDefault();

var usr_id = $('#rating-div input').attr('id');

$.ajax({
url: 'db/rating-no.php',
type: 'post',
data: {'action': 'rating', 'usr_id': user_id},
success: function(data, status){
if(data == "ok"){
$('.rating').html('<p>Oh no! :(</p>');
}//end of if
},//end of success function
error: function(xhr, desc, err){
console.log(xhr);
console.log("Details: " + desc + "\nError: "+ err);
}
});//end of ajax
}); //end of onclick function
}); //end of main function

Рейтинг PHP-да

<?php

$rating = $_POST['action'];
$user_id = $_POST['usr_id'];

if($rating == "rating") {

$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('your_database');

if(mysql_query("UPDATE table SET useful = useful + 1 WHERE user_id = $user_id")){
echo "ok";
}
}

?>

Рейтинг PHP-нет

<?php

$rating = $_POST['action'];
$user_id = $_POST['usr_id'];

if($rating == "rating") {

$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('your_database');

if(mysql_query("UPDATE table SET not_useful = not_useful + 1 WHERE user_id = $user_id")){
echo "ok";
}
}
?>
0

По вопросам рекламы [email protected]