我有一个包含许多列的 MySQL 表,包括一个名为“名称”的列。
我想为一个包含两个文本框 A 和 B 的网页设计一个表单。在文本框 A 中,用户需要输入他们的姓名,在文本框 B 中需要输入一些其他信息。
我希望 PHP 脚本检查文本框 A 中的名称是否与 MySQL 表中名称列中已有的值相匹配,如果匹配,则将文本框 B 中的值添加到该表的另一列中。如果没有找到姓名,我希望脚本返回一个错误,类似于“您的预订未在我们的数据库中找到”。
是否可以使用 PHP/MySQL 执行此操作?如果可以,我将如何处理?
当前代码
$row_count = count($_POST['name']);
mysql_select_db($database, $connection);
if ($row_count > 0) {
$values = array();
for($i = 0; $i < $row_count; $i++) {
// variable sanitation...
$name = mysql_real_escape_string(ucwords($_POST['name'][$i]));
$workshop = mysql_real_escape_string($_POST['workshop'][$i]);
$query = "SELECT * FROM conference WHERE Name = '$name' ";
$result = mysql_query($query);
if ($result) {
$rowcount = mysql_num_rows($result);
if ($rowcount == 0) {echo "no bookings found"; }
else {
$row = mysql_fetch_row($result);
$sql = "UPDATE conference SET Workshop = '$workshop' WHERE Name = '$name'";
mysql_query($sql);
}
}
}
}
最佳答案
这应该可以帮助您入门。
//Get the value from the textbox
$name = mysql_real_escape_string($_POST['name']);
//Select all rows with the name
$query = "SELECT other_info FROM table1 WHERE name = '$name' ";
$result = mysql_query($query);
if ($result) {
$rowcount = mysql_num_rows($result);
//No rows found
if ($rowcount == 0) {echo "no bookings found"; }
else {
//process the data.
$row = mysql_fetch_row($result);
$other_info = $row['other_info'];
echo "other_info = ".hmtlentities($other_info);
参见此处:http://php.net/manual/en/book.mysql.php
代码注释
$row_count = count($_POST['name']);
if ($row_count > 0) {
mysql_select_db($database, $connection);
//$values = array();
$name = array();
$workshop = array()
$replace = array()
for($i = 0; $i < $row_count; $i++) {
// variable sanitation...
$name[i] = mysql_real_escape_string(ucwords($_POST['name'][$i]));
$workshop[i] = mysql_real_escape_string($_POST['workshop'][$i]);
//if you use option 2
$replace[i] = "('".$name[i]."','".$workshop[i]."')";
}
$names = "'".implode("','",$name)."'";
$query = "SELECT 1 FROM conference WHERE Name IN $names ";
$result = mysql_query($query);
if ($result) {
$rowcount = mysql_num_rows($result);
if ($rowcount == 0) {
echo "<HTMLCODE HERE>"."no bookings found"."<MORE HTML>";
//OPTION 1
} else {
for($i = 0; $i < $row_count; $i++) {
//$row = mysql_fetch_row($result);
$sql = "UPDATE conference SET Workshop = '$workshop[i]'
WHERE Name LIKE '$name[i]'";
mysql_query($sql);
}
}
//OPTION2
} else {
$replacement = implode(",",$replace);
$sql = "REPLACE INTO conference (names, workshop) VALUES $replacement "
mysql_query($sql);
}
}
}
关于php - 我可以通过基于文本框中的值与表中列中的值之间的匹配的表单向 MySQL 表添加值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879249/