如何优化我的代码以使其更快、更用户友好?
How to optimize my codes to make it faster and more user friendly?
<div id="database">
<form action="http://localhost/database/edit.php" method="post">
<br>Please enter the ID of item you want to edit: <input type="text" name="ID" /><br><br>
What do you want to change:<br> <br>
<input type="radio" name="change" value="Name"/>Name<br><br>
<input type="radio" name="change" value="Cause" size="100" />Cause <br><br>
<input type="radio" name="change" value="Symptom" size="200" />Symptom <br><br>
<input type="radio" name="change" value="Gene_affected" size="200" />Gene_affected <br><br>
Change it to: <input type="text" name="New" /><br><br>
<input type="submit" onclick="clicked(event)" />
</form>
</div>
那是我的databse.php
<?php
$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
mysql_query("UPDATE pleasework SET $_POST[change] = '$_POST[New]'
WHERE ID='$_POST[ID]'");
echo "Change Successful<br>" ;
header("Location: databse.php");
mysql_close($con);
?>
那是我的edit.php
如何使用 1 个查询更改 table 中的所有框?
//////////////////////////////////////////////// ////////
<div id="database">
<form action="http://localhost/database/edit.php" method="post">
<br>Please enter the ID of item you want to edit: <input type="text" name="ID" /><br><br>
What do you want to change:<br> <br>
Change Name to: <input type="text" name="New" /><br><br>
Change Cause to: <input type="text" name="New1" /><br><br>
Change Symptom to: <input type="text" name="New2" /><br><br>
Change Gene_affected to: <input type="text" name="New3" /><br><br>
<input type="submit" onclick="clicked(event)" />
</form>
</div>
这是我的新主 php 文件。我设法让它一次更新所有 4 个框,但它仍然不可靠且速度慢。请帮忙?
mysql_select_db("database", $con);
mysql_query("UPDATE pleasework SET Name= '$_POST[New]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Cause= '$_POST[New1]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Symptom= '$_POST[New2]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Gene_affected= '$_POST[New3]' WHERE ID='$_POST[ID]'");
echo "Change Successful<br>" ;
header("Location: databse.php");
mysql_close($con);
有什么建议可以帮助我改进我的代码吗?谢谢!
mysql_
函数已弃用,您应该考虑使用 msqli_
或 pdo
以下是使用 mysqli_
更新多个字段的方法
$conn = $mysqli->prepare("UPDATE pleasework SET
field1 = ?,
field2 = ?
WHERE ID = ?");
$conn->bind_param(
$_POST['value1'],
$_POST['value2'],
$_POST['id']);
$conn->execute();
$conn->close();
现在您知道 mysql_
已被弃用,下面是您正在寻找的解决方案:
$sql = "UPDATE pleasework SET column_name1='value', column_name2='value' WHERE ID='$_POST[ID]'";
您是否考虑过使用复选框而不是无线电输入?例如:
然后在 PHP 端你会有这样的查询:
$change_fields = array('Name', 'Cause', 'Symptom', 'Gene_affected');
$query = '';
foreach(change_fields as $field) {
if(isset($_POST[field])) {
$query .= ",$_POST[field] = '$_POST[New]'";
}
}
$query = rtrim(query, ',');
if(!empty($query)) {
mysql_query("UPDATE pleasework SET $query WHERE ID=$_POST[ID]");")
}
通常情况下,我会排除这些值并使用某种包装数据库 class,但这是您在对此感到满意之后想要做的事情。
<div id="database">
<form action="http://localhost/database/edit.php" method="post">
<br>Please enter the ID of item you want to edit: <input type="text" name="ID" /><br><br>
What do you want to change:<br> <br>
<input type="radio" name="change" value="Name"/>Name<br><br>
<input type="radio" name="change" value="Cause" size="100" />Cause <br><br>
<input type="radio" name="change" value="Symptom" size="200" />Symptom <br><br>
<input type="radio" name="change" value="Gene_affected" size="200" />Gene_affected <br><br>
Change it to: <input type="text" name="New" /><br><br>
<input type="submit" onclick="clicked(event)" />
</form>
</div>
那是我的databse.php
<?php
$con = mysql_connect("localhost","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
mysql_query("UPDATE pleasework SET $_POST[change] = '$_POST[New]'
WHERE ID='$_POST[ID]'");
echo "Change Successful<br>" ;
header("Location: databse.php");
mysql_close($con);
?>
那是我的edit.php
如何使用 1 个查询更改 table 中的所有框? //////////////////////////////////////////////// ////////
<div id="database">
<form action="http://localhost/database/edit.php" method="post">
<br>Please enter the ID of item you want to edit: <input type="text" name="ID" /><br><br>
What do you want to change:<br> <br>
Change Name to: <input type="text" name="New" /><br><br>
Change Cause to: <input type="text" name="New1" /><br><br>
Change Symptom to: <input type="text" name="New2" /><br><br>
Change Gene_affected to: <input type="text" name="New3" /><br><br>
<input type="submit" onclick="clicked(event)" />
</form>
</div>
这是我的新主 php 文件。我设法让它一次更新所有 4 个框,但它仍然不可靠且速度慢。请帮忙?
mysql_select_db("database", $con);
mysql_query("UPDATE pleasework SET Name= '$_POST[New]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Cause= '$_POST[New1]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Symptom= '$_POST[New2]' WHERE ID='$_POST[ID]'");
mysql_query("UPDATE pleasework SET Gene_affected= '$_POST[New3]' WHERE ID='$_POST[ID]'");
echo "Change Successful<br>" ;
header("Location: databse.php");
mysql_close($con);
有什么建议可以帮助我改进我的代码吗?谢谢!
mysql_
函数已弃用,您应该考虑使用 msqli_
或 pdo
以下是使用 mysqli_
$conn = $mysqli->prepare("UPDATE pleasework SET
field1 = ?,
field2 = ?
WHERE ID = ?");
$conn->bind_param(
$_POST['value1'],
$_POST['value2'],
$_POST['id']);
$conn->execute();
$conn->close();
现在您知道 mysql_
已被弃用,下面是您正在寻找的解决方案:
$sql = "UPDATE pleasework SET column_name1='value', column_name2='value' WHERE ID='$_POST[ID]'";
您是否考虑过使用复选框而不是无线电输入?例如:
然后在 PHP 端你会有这样的查询:
$change_fields = array('Name', 'Cause', 'Symptom', 'Gene_affected');
$query = '';
foreach(change_fields as $field) {
if(isset($_POST[field])) {
$query .= ",$_POST[field] = '$_POST[New]'";
}
}
$query = rtrim(query, ',');
if(!empty($query)) {
mysql_query("UPDATE pleasework SET $query WHERE ID=$_POST[ID]");")
}
通常情况下,我会排除这些值并使用某种包装数据库 class,但这是您在对此感到满意之后想要做的事情。