如何使用变量和不同的文件用不同的值更新 mysql 和 php 中的多行?
How to update multiple rows in mysql and php with a different values using variables and different files?
我正在尝试用仪表板在 PHP 中制作一个不和谐的机器人(这很有效,我不知道最好的语言选择,但这是我目前最适合自己需要的语言) .
这个想法是为了能够在网站上添加和编辑命令。
我正在使用 mysql 选择当前命令,格式如下:
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$disable = $row['Disabled'];
echo "<input type='hidden' name='id[]' value='";
echo $row['Id'];
echo "'>";
echo '<tr>';
echo '<td class="tg-515c"><input type="text" name="command[]" value="';
echo $row['Command'];
echo '" class="form-control"></td>';
echo '<td class="tg-wp8o"><input type="text" name="text[]" value="';
echo $row['Text'];
echo '" class="form-control"></td>';
echo '<td class="tg-wp8o"><select class="form-control" name="disabled[]">';
if($disable == '0')
{
echo "<option value='1'>Yes</option><option value='0' selected>No</option>";
}
else
{
echo "<option value='1' selected>Yes</option><option value='0'>No</option>";
}
echo "</select>";
echo '</td>';
echo '</tr>';
}
而且我的 php 语法之外的形式。
这似乎工作正常。
// Create connection
$command = $_POST['command'];
$text = $_POST['text'];
$id = $_POST['id'];
$disable = $_POST['disabled'];
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="UPDATE dashboard SET Command='$command[0]', Text='$text[0]', Disabled='$disable[0]' WHERE Id='$id[0]'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
header("Location: /");
$conn->close();
我刚刚 copy/pasted 这段代码几次,并将数组从 [0] 更改为 [1],等等
这现在可以工作了,但是,我有另一个文件向数据库添加了更多命令,所以我需要在每次添加新命令时自动执行它,而不是为每个输入手动键入。
将代码编辑为更新版本。
我通过这样做找到了解决方案:
<?php
$servername = "xxxt";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
$command = $_POST['command'];
$text = $_POST['text'];
$id = $_POST['id'];
$disable = $_POST['disabled'];
$count = count($id);
for ($x = 0; $x <= $count; $x++) {
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE dashboard SET Command='$command[$x]', Text='$text[$x]', Disabled='$disable[$x]' WHERE Id='$id[$x]'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
}
header("Location: /");
?>
所以我决定做一个 for 循环并计算我有多少输入,所以对于每个输入,它会自动创建一个新的查询来更新它。
我为你做了一个我认为对你有用的例子,它现在可以用了,我试过了
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "createde";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// When you press the change button, it will completely change the data
if(isset($_POST["sub"])){
$command = $_POST['command'];
$text = $_POST['text'];
$id = "1";
$disable = "0";
$sql="UPDATE deew SET Command='$command', Text='$text', Disabled='$disable' WHERE id='$id'";
$conn->query($sql);
}
$conn->close();
?>
第二页是输入值的地方
<?php
include("sql.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="#" method="POST">
<textarea name="command" id="command" cols="30" rows="10"></textarea>
<input type="text" name="text" >
<input type="submit" name="sub">
</form>
</body>
</html>
我知道你的代码调用了所有的数据,并通过它们来确定你要更改哪些数据
我正在尝试用仪表板在 PHP 中制作一个不和谐的机器人(这很有效,我不知道最好的语言选择,但这是我目前最适合自己需要的语言) . 这个想法是为了能够在网站上添加和编辑命令。
我正在使用 mysql 选择当前命令,格式如下:
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$disable = $row['Disabled'];
echo "<input type='hidden' name='id[]' value='";
echo $row['Id'];
echo "'>";
echo '<tr>';
echo '<td class="tg-515c"><input type="text" name="command[]" value="';
echo $row['Command'];
echo '" class="form-control"></td>';
echo '<td class="tg-wp8o"><input type="text" name="text[]" value="';
echo $row['Text'];
echo '" class="form-control"></td>';
echo '<td class="tg-wp8o"><select class="form-control" name="disabled[]">';
if($disable == '0')
{
echo "<option value='1'>Yes</option><option value='0' selected>No</option>";
}
else
{
echo "<option value='1' selected>Yes</option><option value='0'>No</option>";
}
echo "</select>";
echo '</td>';
echo '</tr>';
}
而且我的 php 语法之外的形式。 这似乎工作正常。
// Create connection
$command = $_POST['command'];
$text = $_POST['text'];
$id = $_POST['id'];
$disable = $_POST['disabled'];
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="UPDATE dashboard SET Command='$command[0]', Text='$text[0]', Disabled='$disable[0]' WHERE Id='$id[0]'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
header("Location: /");
$conn->close();
我刚刚 copy/pasted 这段代码几次,并将数组从 [0] 更改为 [1],等等
这现在可以工作了,但是,我有另一个文件向数据库添加了更多命令,所以我需要在每次添加新命令时自动执行它,而不是为每个输入手动键入。
将代码编辑为更新版本。
我通过这样做找到了解决方案:
<?php
$servername = "xxxt";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
$command = $_POST['command'];
$text = $_POST['text'];
$id = $_POST['id'];
$disable = $_POST['disabled'];
$count = count($id);
for ($x = 0; $x <= $count; $x++) {
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE dashboard SET Command='$command[$x]', Text='$text[$x]', Disabled='$disable[$x]' WHERE Id='$id[$x]'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
}
header("Location: /");
?>
所以我决定做一个 for 循环并计算我有多少输入,所以对于每个输入,它会自动创建一个新的查询来更新它。
我为你做了一个我认为对你有用的例子,它现在可以用了,我试过了
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "createde";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// When you press the change button, it will completely change the data
if(isset($_POST["sub"])){
$command = $_POST['command'];
$text = $_POST['text'];
$id = "1";
$disable = "0";
$sql="UPDATE deew SET Command='$command', Text='$text', Disabled='$disable' WHERE id='$id'";
$conn->query($sql);
}
$conn->close();
?>
第二页是输入值的地方
<?php
include("sql.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="#" method="POST">
<textarea name="command" id="command" cols="30" rows="10"></textarea>
<input type="text" name="text" >
<input type="submit" name="sub">
</form>
</body>
</html>
我知道你的代码调用了所有的数据,并通过它们来确定你要更改哪些数据