Как я могу обновить базу данных, добавив выбор пользователей? У меня есть два поля в базе данных для этой цели, когда пользователь нажимает «да», он обновляет (полезное) поле и (не_полезно), если не нажимать ни одну кнопку. Я очень новичок в 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();
});
});
Вы не можете подключить свою базу данных MySQL напрямую через JavaScript из клиентского браузера. Если это возможно, вы действительно не хотите этого делать, потому что вам придется включить учетные данные для входа в MySQL в JavaScript, который подается на клиентские компьютеры.
Конечно, вы можете использовать базу данных, такую как LocalStorage, из JavaScript, но эти базы данных находятся на клиентском компьютере. Если я правильно понял, это не то, что вы ищете.
Вы должны отправить данные в скрипт на вашем сервере, который затем вставит их в базу данных mySQL. Как вы заявили, вам не нравится, когда браузер перезагружается, просто отправка формы не подходит. В этих случаях используется AJAX. Вы найдете несколько руководств по отправке данных с помощью JavaScript / JQuery с использованием AJAX на ваш сервер.
На стороне сервера вы можете работать, например, с PHP-скриптом. Код, который вы разместили на свой вопрос, не PHP, а простой HTML. Фред -ii- опубликовал несколько примеров операторов SQL для увеличения столбца. Я бы порекомендовал вам использовать PHP PDO с MySQL драйвер так как это поможет вам предотвратить проблемы с безопасностью.
После некоторой усердной работы я нашел решение. Обмен для тех, кто сталкивается с подобной проблемой. Это было мое решение. В любом случае, получайте удовольствие! 😉
Я думаю, что есть лучший способ организовать 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";
}
}
?>