Я надеюсь, что это полезно сейчас Поскольку вы спросили меня о структуре базы данных, я создал ее
Я ценю вашу помощь! Заранее спасибо!
До сих пор у меня есть следующий HTML-код:
<html>
<head>
<title>Test Software</title>
</head>
<body>
<label>
Datum:<br/>
<input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;"/>
</label>
<label>
<p> <form action = "#"> </p>
<label>Station:<br>
<select name = "top5" style = "height: 50px; width: 100px;"/>
<option>Choice 1 </option>
<option>Choice 2 </option>
<option>Choice 3 </option>
<option>Choice 4 </option>
<option>Choice 5 </option>
</select>
</label>
</form>
</main>
<br/><br/><br/>
<input type = "submit" name = "button[Button1]" value = "Button 1" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button2]" value = "Button 2" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button3]" value = "Button 3" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button4]" value = "Button 4" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button5]" value = "Button 5" style = "height: 50px; width: 100px;"/>
</form>
</body>
</html>Как я могу отправить данные Тому в php-файл, а затем сохранить его в базе данных?
DB
CREATE TABLE button_counter (
id INTEGER PRIMARY KEY,
name VARCHAR(64) NOT NULL,
datum DATE NOT NULL,
savedate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
Button BIT NOT NULL DEFAULT 0,
Button2 BIT NOT NULL DEFAULT 0,
Button3 BIT NOT NULL DEFAULT 0,
Button4 BIT NOT NULL DEFAULT 0
Button5 BIT NOT NULL DEFAULT 0
);
пожалуйста, покажите полный код с кнопками. Тогда я дам вам ответ с соответствующими именами.
@NipunTharuksha Я отредактировал пост и добавил полный код
@ Астра-Джо, дай мне четкое представление. Может ли пользователь нажимать одну и ту же кнопку несколько раз, и вам нужно сохранить ее количество в БД. Я прав?
@NipunTharuksha, да, пользователь выбирает дату и выбор из тега select, а затем нажимает разные кнопки, и это должно храниться в БД. например, если пользователь нажимает 5 раз на кнопку 1 и 3 раза на кнопку 2, это должно быть сохранено для текущей даты и тега выбора до тех пор, пока не будет выбран новый тег выбора или дата.
@ Астра-Джо, чтобы дать вам четкий ответ, еще одна вещь, которую нужно прояснить. Только представьте, если я нажму кнопку 1 5 раз, она сохранится в БД как текущая дата и время пять раз или только текущее время и дата с количеством нажатий кнопки. Также, пожалуйста, обновите свой вопрос, указав снимок таблицы, в которую вы хотите загрузить данные.
@NipunTharuksha Например, если я нажимаю кнопку 1 5 раз, она должна сохранить в БД текущую дату и выбранный тег выбора с подсчетом кликов по каждой кнопке.
@Astra-Joe хорошо, пожалуйста, прикрепите снимок вашей таблицы БД
@NipunTharuksha, ты это имеешь в виду? Я создал SQL, но не уверен, что это правильно
@Astra-Joe, если бы вы могли предоставить структуру базы данных, я могу предоставить четкий код
@NipunTharuksha Для каждой даты, выбора и кнопки должна быть таблица, в которой данные хранятся в формате . Пример в моем ответе
@NipunTharuksha Я прикрепил пример в своем вопросе, было ли это полезно?
@ Астра-Джо, дай мне 10 минут, я тестирую код. Я добавлю ответ в течение следующих 10 минут
@ Астра-Джо проверь ответ






Пожалуйста, правильно отформатируйте html-код. Правильно отформатированный код находится здесь: Добавьте функцию js при каждом нажатии кнопки и в этой функции увеличьте соответствующий счетчик и установите в другом поле ввода.
<html>
<head>
<title>Test Software</title>
</head>
<body>
<form action = "#">
<label>
Datum:<br/>
</label>
<input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;"/>
<label>Station:<br>
</label>
<select name = "top5" style = "height: 50px; width: 100px;"/>
<option>Choice 1 </option>
<option>Choice 2 </option>
<option>Choice 3 </option>
<option>Choice 4 </option>
<option>Choice 5 </option>
</select>
<input type = "submit" name = "button[Button1]" value = "Button 1" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button2]" value = "Button 2" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button3]" value = "Button 3" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button4]" value = "Button 4" style = "height: 50px; width: 100px;"/>
<input type = "submit" name = "button[Button5]" value = "Button 5" style = "height: 50px; width: 100px;"/>
</form>
</body>
</html>Для простой отправки формы вы можете использовать атрибуты тега формы.
Например: <form action = "<?=$_SERVER['PHP_SELF']; ?>" method = "POST" enctype= "multipart/form-data">
$_SERVER['PHP_SELF'] используется для перенаправления той же страницы с данными формы с ее методом (POST и GET).
Для проверки данных формы, доступных на странице, и вставки данных в базу данных это может вам помочь:
if (!empty($_POST)){
$data=$_POST['name'];
$insert = "INSERT INTO table(name) VALUES('".$data."')";
if ($conn->query($insert) === TRUE) { echo "Successfully Inserted";
}else{ echo "error insert"; }
}
да, я знаю @Dharman, но здесь он не говорит и не спрашивает о какой-либо безопасности. По крайней мере, прочитайте вопрос и попытайтесь помочь другим.
Я изменил ваш код, как показано ниже, и проверьте. Это работает. В вашем вопросе я вижу, что поле даты должно быть заполнено текущей отметкой времени. Но есть поле ввода для выбора даты для пользователя. Итак, я изменил ваш код, предполагая, что пользователь укажет дату. Пожалуйста, посмотрите приведенный ниже код, и если вы получите то, что вам нужно, отметьте его как ответ. Спасибо
index.php
<html>
<head>
<title>Test Software</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
var counter1 = 0;
$(document).on('click', '#button01', function(e) {
e.preventDefault();
counter1++;
$("#button01").text('You have clicked' + counter1);
$("#hidde_val_of_button01").val(counter1);
});
var counter2 = 0;
$(document).on('click', '#button02', function(e) {
e.preventDefault();
counter2++;
$("#button02").text('You have clicked' + counter2);
$("#hidde_val_of_button02").val(counter2);
});
var counter3 = 0;
$(document).on('click', '#button03', function(e) {
e.preventDefault();
counter3++;
$("#button03").text('You have clicked' + counter3);
$("#hidde_val_of_button03").val(counter3);
});
var counter4 = 0;
$(document).on('click', '#button04', function(e) {
e.preventDefault();
counter4++;
$("#button04").text('You have clicked' + counter4);
$("#hidde_val_of_button04").val(counter4);
});
var counter5 = 0;
$(document).on('click', '#button05', function(e) {
e.preventDefault();
counter5++;
$("#button05").text('You have clicked' + counter5);
$("#hidde_val_of_button05").val(counter5);
});
</script>
</head>
<body>
<form action = "action.php" method = "post">
<label>
Datum:
<br/>
<input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;" />
</label>
<label>
<p> </p>
<label>Station:
<br>
<select name = "top5" style = "height: 50px; width: 100px;" />
<option>Choice 1 </option>
<option>Choice 2 </option>
<option>Choice 3 </option>
<option>Choice 4 </option>
<option>Choice 5 </option>
</select>
</label>
</main>
<br/>
<br/>
<br/>
<button id = "button01" style = "height: 50px; width: 100px;">Button 1</button>
<!--Using hiddne text input typeto pass the data!-->
<input type = "text" hidden value = "0" id = "hidde_val_of_button01" name = "button01" />
<button id = "button02" style = "height: 50px; width: 100px;">Button 2</button>
<!--Using hiddne text input typeto pass the data!-->
<input type = "text" hidden value = "0" id = "hidde_val_of_button02" name = "button02" />
<button id = "button03" style = "height: 50px; width: 100px;">Button 3</button>
<!--Using hiddne text input typeto pass the data!-->
<input type = "text" hidden value = "" id = "hidde_val_of_button03" name = "button03" />
<button id = "button04" style = "height: 50px; width: 100px;">Button 4</button>
<!--Using hiddne text input typeto pass the data!-->
<input type = "text" hidden value = "" id = "hidde_val_of_button04" name = "button04" />
<button id = "button05" style = "height: 50px; width: 100px;">Button 5</button>
<!--Using hiddne text input typeto pass the data!-->
<input type = "text" hidden value = "" id = "hidde_val_of_button05" name = "button05" />
<br/>
<br/>
<button type = "submit" style = "height: 50px; width: 100px;background-color:green;">Submit</button>
<br/>
<textarea name = "comment" >Enter your comment here...</textarea>
</form>
</body>
</html>
action.php
<?php
//FETCH DATA
$date = $_POST['date'];
$option = $_POST['top5'];
$btn01 = $_POST['button01'];
$btn02 = $_POST['button02'];
$btn03 = $_POST['button03'];
$btn04 = $_POST['button04'];
$btn05 = $_POST['button05'];
$comment = $_POST['comment'];
// echo $date."<br/>";
// echo $option."<br/>" ;
// echo $btn01."<br/>" ;
// echo $btn02."<br/>" ;
// echo $btn03."<br/>" ;
// echo $btn04."<br/>" ;
// echo $btn05."<br/>";
$sql = "INSERT INTO your_table_name(Date,Choice,Button_01,Button_02,Button_03,Button_04,Button_05,comment) VALUES ($date,$option,$btn01,$btn02,$btn03,$btn04,$btn05,$comment) ";
?>
Не используйте этот код как есть. Он уязвим для SQL-инъекций, если этот SQL когда-либо будет выполнен, и может нарушить работу вашего приложения. Используйте подготовленные операторы, если вы собираетесь получить доступ к БД.
@Dharman, я только что дал ему идею. Он должен знать, как использовать SQL
@NipunTharuksha Можно ли распечатать на странице, сколько кнопок было нажато для каждого выбора? Например, для выбора 1, даты xx/xx/xxxx, button1 (6x), button2 (9x)… Я хочу показать, сколько раз была нажата каждая кнопка для каждого выбора и даты, для статистики
@ Astra-Joe Я не понимаю, о чем ты спрашиваешь. Вы имеете в виду, что перед отправкой вы хотите показать, сколько раз была нажата эта кнопка?
@NipunTharuksha Я упоминаю, что хочу отображать на своей странице данные, хранящиеся в моей базе данных. Теперь я пытаюсь создать базу данных, а затем хочу отобразить сохраненные данные на странице. Может быть, мне следует начать новый вопрос для этого? echo "<tr> <td>Дата</td> <td>Выбор</td>"; echo "<td>Кнопка1</td> <td>Кнопка2</td>"; echo "<td>Кнопка3</td> <td>Кнопка4</td>"; echo "<td>Button5</td> </tr>";
@ Astra-Joe, вы просите извлечь данные из базы данных и отобразить?
@NipunTharuksha да, точно! Для этого проекта у меня есть 3 цели, которые я хочу сделать 1. Я хочу получать данные из базы данных и отображать 2. Я хочу сделать счетчик, где я могу видеть, сколько раз какая кнопка была нажата для всех дат и станций, но с кнопка сброса 3. Я хочу, чтобы страница также работала в автономном режиме с помощью автономного приложения Cache. Возможно, это самый простой способ начать с пункта 1.
@Astra-Joe покажи мне свою текущую базу данных, а я покажу тебе, как извлекать и отображать
Большое спасибо, я свяжусь с вами сегодня!
@Astra-Joe Я удалил номер, надеюсь, ты его взял. Однако, если вы предоставите текущую структуру базы данных, я могу предоставить вам код
@NipunTharuksha Да, спасибо, я сохранил номер! "если вы предоставите текущую структуру базы данных" Вы имеете в виду, что: i.stack.imgur.com/5P696.png?
@Astra-Joe Сначала разработайте свою БД и связанные таблицы. Так что покажи мне таблицу.
@NipunTharuksha Привет, я отредактировал свой вопрос и добавил структуру базы данных, это то, что вы хотели, верно? Кстати, у вас есть WhatsApp или аналогичный?
@Astra-Joe Думаю, у тебя есть мой номер
@astra-joe В этом посте показано, как извлекать данные из таблицы БД и как их отображать.
This is the DB table I created for testing
Здесь я пытаюсь сначала создать учетные данные БД, а затем через эти учетные данные будет создано соединение.
Затем проверьте подключение и, если подключение не удалось, отобразите ошибку ($conn->connect_error).
Затем я создаю загрузочную таблицу и сначала определяю заголовок таблицы.
Теперь создайте оператор sql для извлечения данных из таблицы БД.
Затем оператор запросить sql с соединением $result
Теперь проверьте количество строк, на которые выводится результат if ($result->num_rows > 0)
Если $result>0, это означает, что данные успешно извлекаются из базы данных. Таким образом, все данные будут зацикливаться в цикле while с таблицей начальной загрузки.
Если $result<0 это означает, что данные не извлекаются, поэтому вывод будет
no data to be fetched.
Check this code
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<title>Page Title</title>
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity = "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin = "anonymous">
</head>
<body>
<?php
$servername = "localhost";//these credititlas to be updated according to your DB
$username = "root";//these credititlas to be updated according to your DB
$password = "";//these credititlas to be updated according to your DB
$dbname = "astrajoy";//these credititlas to be updated according to your DB
// Create connection
$conn =new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ". $conn->connect_error);
}
?>
<!-- Bootstrap table header section. This section shouldnt be repeated. So that I have put it before while loop. -->
<table
class = "table table-bordered table-dark">
<thead>
<tr>
<th scope = "col">Index</th>
<th scope = "col">Date</th>
<th scope = "col">Choice</th>
<th scope = "col">Button_01</th>
<th scope = "col">Button_02</th>
<th scope = "col">Button_03</th>
<th scope = "col">Button_04</th>
<th scope = "col">Button_05</th>
<th scope = "col">Comment</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM user";// * mean all in SQL
//In here query will be excuted with db connetion
$result = $conn->query($sql);
// to have a unique ID for a row
$index =0;
//check the result
if ($result->num_rows>0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$index++;
?>
<!-- Data display will be started from here -->
<tr>
<th scope = "row"><?=$index;?></th>
<td><?=$row['Date'];?></td>
<td><?=$row['Choice'];?></td>
<td><?=$row['Button_01'];?></td>
<td><?=$row['Button_02'];?></td>
<td><?=$row['Button_03'];?></td>
<td><?=$row['Button_04'];?></td>
<td><?=$row['Button_05'];?></td>
<td><?=$row['comment'];?></td>
</tr>
<?php
}
} else {
$conn->close();
?>
<tr>
<th
scope = "row"></th>
<td
colspan = "7">No data available</td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
Please do update the db table with a field name called comment
This is the final result
Не могли бы вы поделиться файлом SQL для базы данных?
вы можете использовать ajax для отправки данных в скрипт php.