我是php的新手但是正在尝试学习新东西。我在数据库中有一个包含三个字段的表。 id,城市和名称。我想要的是通过从文本框中获取值来检查所有这三个字段是否相等,然后显示错误,否则它将显示重定向到新页面的链接。但是我无法正确地运行这个查询,尝试了几个像count等。
<form>
<input id="text1" type="text" name="id" size="20" >
<input id="text1" type="text" name="name" size="20" >
<input id="text1" type="text" name="city" size="20" >
<input id="text1" type="submit" name="submit" size="20" >
</form>
<?php
$con=mysqli_connect("localhost","root","","test");
$check="SELECT * FROM eval WHERE id = '$_POST[id]' AND name = '$_POST[name]' AND city = '$_POST[city]' ";
if( if all this data is same then ) {
echo "Record already exist...<br/>";
}
else
{
echo "<a href='NewUser.php'> New Sign Up </a>
}
?>
答案 0 :(得分:1)
<form>
<input id="text1" type="text" name="id" size="20" >
<input id="text1" type="text" name="name" size="20" >
<input id="text1" type="text" name="city" size="20" >
<input id="text1" type="submit" name="submit" size="20" >
</form>
<?php
$con=mysqli_connect("localhost","root","","test");
$check="SELECT COUNT(*) FROM eval WHERE id = '$_POST[id]' AND name = '$_POST[name]' AND city = '$_POST[city]' ";
$result = mysqli_query($con,$check);
$count = mysqli_fetch_array($result);
if(current($count) > 0) {
echo "Record already exist...<br/>";
}
else
{
echo "<a href='NewUser.php'> New Sign Up </a>
}
?>
您必须使用SQL
将mysqli_query()
查询发送到数据库。然后检查行数是否大于0,这意味着您找到了一个或多个精确重复的行。
SELECT COUNT(*)
自动计算检索到的行。
答案 1 :(得分:1)
好的,所以你有一个HTML表单和一些PHP代码来处理表单提交时发生的事情。
因此,在提交表单时,为了让PHP注册此提交,需要知道表单已提交。
如果您通过JavaScript处理表单输入,那么您的表单在客户端可能会运行良好,但在PHP中它有点不同。
所以你的表格需要另外两件事:
1。)方法属性,指定如何发送表单数据。
2。)定义表单数据将发送到的位置的操作。
最常见的方法是GET和POST。并且当你有PHP代码处理与表单在同一页面上的表单时,操作将是页面本身。所以你现在有:
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="id">
<input type="text" name="name">
<input type="text" name="city">
<input type="submit" name="clicked" value="formSubmit">
</form>
在PHP中,为了注册此输入,您可以使用单击“提交”按钮时发生的事件。所以你将拥有:
<?php
# If the submit button was clicked
if (isset($_POST['clicked']) && $_POST['clicked'] == 'formSubmit') {
# Access the form inputs in php
$id = $_POST['id'];
$name = $_POST['name'];
$city = $_POST['city'];
# Helper to output mysql errors
function processError($link) {
echo "Error: Unable to connect to MySQL.<br>";
echo "Debugging errno: " . $link->errno . "<br>";
echo "Debugging error: " . $link->error . "<br>";
exit;
}
# Connect to the database
// Create a database connection for PHP to use
$link = mysqli_connect($DBHost, $DBUser, $DBPass, $DBName);
// Ensure the connection is active
if (!$link) {
echo "Error: Unable to connect to MySQL.<br>";
echo "Debugging errno: " . mysqli_connect_errno() . "<br>";
echo "Debugging error: " . mysqli_connect_error() . "<br>";
exit;
}
// Sets encoding type to uft8
if (!mysqli_set_charset($link, 'utf8')) { processError($link); }
# Do query
// Build query
$query = 'SELECT `id` ';
$query .= 'FROM `eval` ';
$query .= 'WHERE `id` = ? ';
$query .= 'AND `name` = ? ';
$query .= 'AND `city` = ? ';
$query .= 'LIMIT 1 ';
// Prepare the statement
if (!$stmt = $link->prepare($query)) { processError($link); }
// Bind in form values to prevent sql injection
if (!$stmt->bind_param('iss', $id, $name, $city)) { processError($link); }
// Execute the query
if (!$stmt->execute()) { processError($link); }
// Store the result
$stmt->store_result();
// Store the number of rows returned
$num_rows = $stmt->num_rows;
// Close the statement
$stmt->close();
# Check if the record exists
if ($num_rows == 1) {
echo 'Record already exist...<br/>';
}
// No record exists
else {
echo '<a href="NewUser.php"> New Sign Up </a>';
}
}
?>
希望能帮到你: - )