其他元素没有返回正确的结果
Else element not returning the correct result
我创建了一个 select 语句,使用 php 将 return 结果转换为基于用户输入的 HTML。反馈是 return 根据输入字段匹配手动填充的字段 table 编辑的。 select 语句应该是 return 最高的 ID。表单将数据插入 'adoption' table。然后根据'adoption'table.table.table.'dogs'.table下面匹配的字段,结果return来自'dogs'的一行
<?php
$connect = mysqli_connect("localhost", "root", "", "ncdr_first", "3308");
$sql = "SELECT dogs.name, dogs.breed, dogs.age, dogs.sex, dogs.image, adoption.adoption_id
FROM dogs
INNER JOIN adoption ON dogs.adultRadio = adoption.adultRadio
AND dogs.child = adoption.child
AND dogs.petRadio = adoption.petRadio
AND dogs.pet = adoption.pet
AND dogs.activity = adoption.activity
AND dogs.home = adoption.home
AND dogs.environment = adoption.environment
ORDER BY adoption.adoption_id DESC
LIMIT 0, 1";
$result = mysqli_query($connect, $sql);
?>
然后结果显示在页面 HTML 部分的 table 中。
<div class="table">
<center><table id="feedback">
<tr>
<th>Name</th>
<th>Breed</th>
<th>Age</th>
<th>Sex</th>
<th>Image</th>
</tr>
<?php
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
?>
<tr>
<td><?php echo $row["name"];?></td>
<td><?php echo $row["breed"];?></td>
<td><?php echo $row["age"];?></td>
<td><?php echo $row["sex"];?></td>
<td><img src="<?php echo $row["image"];?>"/></td>
</tr>
<?php
}
} else {
echo "Unfortunately you have not been a match for any of our furry friends! Please try again soon.";
}
?>
</center></table>
CREATE TABLE dogs (dog_id int, name varchar, breed varchar, age varchar, sex
varchar, adultRadio varchar, child varchar, petRadio varchar, pet varchar,
activity varchar, home varchar, environment varchar, image varchar );
CREATE TABLE adoption (adoption_id int, name varchar, address varchar,
adultRadio varchar, child varchar, petRadio varchar, pet varchar, activity
varchar, home varchar, environment varchar, image varchar );
但是,如果我向 'adoption' table 输入的数据与 'dogs' table 中的任何行都不匹配,它将 return 最后匹配的行而不是 else 中的语句。有人对如何解决这个问题有任何建议吗?
<?php
session_start();
//Check if user is logged in, if not redirect to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="eng">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="view" content="width=device-width"/>
<title>North Coast Dog Rescue Contact Page</title>
<meta name="description" content="Responsive website for North Coast Dog
Rescue"/>
<meta name="author" content="Chloe Leighton B00710338"/>
<link rel="stylesheet" href="style.css"/>
<style type="text/css">
.formContainer #adultNo:checked ~ .conditional, #petYes:checked ~ .conditional {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
.formContainer #adultNo:not(:checked) ~ .conditional, #petYes:not(:checked) ~ .conditional {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
</style>
</head>
<body>
<div class="header">
<div class="container">
<div id="logo">
<img src="images/logo.png" alt="logo"/>
</div>
<div class="nav">
<ul>
<li class="home"><a href="index.html">Home</a></li>
<li class="about"><a href="aboutUs.html">About Us</a></li>
<li class="dogs"><a href="dogs.html">Dogs for Adoption</a></li>
<li class="current"><a href="adoptionForm.php">Online Adoption Form</a></li>
<li class="contact"><a href="contactUs.html">Contact Us</a></li>
<li class="login"><a href="login.php">Login</a></li>
</ul>
</div>
</div>
</div>
<form action="adoptionForm.php" method="post">
<div class="formContainer">
<h1>Adoption Form</h1>
<p>Please fill in this form to be matched to a suitable dog.</p>
<hr/>
<label><b>Name</b></label>
<input type="text" name="name"/>
<label><b>Address</b></label>
<input type="text" name="address"/>
<label><b>Do you have an adult only home?</b></label><br />
<input type="radio" name="adultRadio" id="adultYes" value="Yes" onclick="radio_check()"; /> Yes <br />
<input type="radio" name="adultRadio" id="adultNo" value="No" onclick="radio_check()"; /> No <br />
<div class="conditional">
<label><b>If you don't have an adult only home, please select the age of any children: </b></label><br />
<select id="child" size="0" name="child">
<option value="" name=""></option>
<option value="baby/toddler" name="baby/toddler">Baby/Toddler (0-4 years)</option>
<option value="youngChild" name="youngChild">Small Child (5-12 years)</option>
<option value="olderChild" name="olderChild">Older Child (13-18 years)</option>
</select><br />
</div>
<label><b>Do you have any pets?</b></label><br/>
<input type="radio" name="petRadio" id="petYes" value="Yes" onclick="radio_check()";/> Yes <br />
<input type="radio" name="petRadio" id="petNo" value="No" onclick="radio_check()";/> No <br />
<div class="conditional">
<label><b>If you have a pet, please select the description that fits them best: </b></label><br />
<select id="pet" name="pet">
<option value="" name=""></option>
<option value="youngDog" name="youngDog">Young, playful dog</option>
<option value="oldDog" name="oldDog">Older, calm dog</option>
<option value="cat" name="cat">Cat</option>
</select>
</div>
<label><b>Please select which activity level fits you best: </b></label><br/>
<select name="activity">
<option value="notActive" name="notActive">Not very active</option>
<option value="moderatelyActive" name="moderatelyActive">Moderately active</option>
<option value="veryActive" name="veryActive">Very active</option>
</select>
<label><b>Please select how often you are at home: </b></label><br/>
<select name="home">
<option value="little" name="littleHome">At home very little</option>
<option value="most" name="mostHome">At home most of the time</option>
<option value="all" name="allHome">There is always someone at home</option>
</select>
<label><b>Please select which best describes your home environment: </b></label>
<select name="environment">
<option value="city" name="city">Busy city</option>
<option value="suburbs" name="suburbs">Suburbs</option>
<option value="rural" name="rural">Quiet and rural</option>
</select>
<button class="submit" type="submit">Submit Form</button>
</div>
<div class="loginContainer" style="background-color:#f1f1f1">
<a href="logout.php"><button type="button" class="cancelbtn">Logout</button></a>
</div>
</form>
<div class="footer">
<p>North Coast Dog Rescue, Copyright © 2020</p>
</div>
</body>
</html>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$name = $_POST['name'];
$address = $_POST['address'];
$adultRadio = $_POST['adultRadio'];
$child = $_POST['child'];
$petRadio = $_POST['petRadio'];
$pet = $_POST['pet'];
$activity = $_POST['activity'];
$home = $_POST['home'];
$environment = $_POST['environment'];
$bool = true;
//Connect to server and database
$conn = mysqli_connect("localhost", "root", "", "ncdr_first", "3308");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo "Success: A proper connection to MySQL was made! <br>" ;
echo "Host information: " . mysqli_get_host_info($conn) ;
$query_ins = "INSERT INTO adoption (name, address, adultRadio, child,
petRadio, pet, activity, home, environment)
VALUES ('$name', '$address', '$adultRadio', '$child', '$petRadio',
'$pet', '$activity', '$home', '$environment')";
if($bool) {
mysqli_query($conn, $query_ins);
echo "<script>alert('Adoption form submitted successfully!');</script>";
echo "<script>window.location.assign('feedback.php');</script>";
}
mysqli_free_result($result);
mysqli_close($conn);
}
?>
SQL query result
查看 SQL 代码,它将 return 匹配的最后一个 ID 而不是最后一个 ID。您可以 select 仅最后插入以下内容,
$sql = "SELECT dogs.name, dogs.breed, dogs.age, dogs.sex, dogs.image, adoption.adoption_id
FROM dogs
INNER JOIN adoption ON dogs.adultRadio = adoption.adultRadio
AND dogs.child = adoption.child
AND dogs.petRadio = adoption.petRadio
AND dogs.pet = adoption.pet
AND dogs.activity = adoption.activity
AND dogs.home = adoption.home
AND dogs.environment = adoption.environment
WHERE adoption_id = (SELECT MAX(adoption_id) FROM adoption)";
我创建了一个 select 语句,使用 php 将 return 结果转换为基于用户输入的 HTML。反馈是 return 根据输入字段匹配手动填充的字段 table 编辑的。 select 语句应该是 return 最高的 ID。表单将数据插入 'adoption' table。然后根据'adoption'table.table.table.'dogs'.table下面匹配的字段,结果return来自'dogs'的一行
<?php
$connect = mysqli_connect("localhost", "root", "", "ncdr_first", "3308");
$sql = "SELECT dogs.name, dogs.breed, dogs.age, dogs.sex, dogs.image, adoption.adoption_id
FROM dogs
INNER JOIN adoption ON dogs.adultRadio = adoption.adultRadio
AND dogs.child = adoption.child
AND dogs.petRadio = adoption.petRadio
AND dogs.pet = adoption.pet
AND dogs.activity = adoption.activity
AND dogs.home = adoption.home
AND dogs.environment = adoption.environment
ORDER BY adoption.adoption_id DESC
LIMIT 0, 1";
$result = mysqli_query($connect, $sql);
?>
然后结果显示在页面 HTML 部分的 table 中。
<div class="table">
<center><table id="feedback">
<tr>
<th>Name</th>
<th>Breed</th>
<th>Age</th>
<th>Sex</th>
<th>Image</th>
</tr>
<?php
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
?>
<tr>
<td><?php echo $row["name"];?></td>
<td><?php echo $row["breed"];?></td>
<td><?php echo $row["age"];?></td>
<td><?php echo $row["sex"];?></td>
<td><img src="<?php echo $row["image"];?>"/></td>
</tr>
<?php
}
} else {
echo "Unfortunately you have not been a match for any of our furry friends! Please try again soon.";
}
?>
</center></table>
CREATE TABLE dogs (dog_id int, name varchar, breed varchar, age varchar, sex
varchar, adultRadio varchar, child varchar, petRadio varchar, pet varchar,
activity varchar, home varchar, environment varchar, image varchar );
CREATE TABLE adoption (adoption_id int, name varchar, address varchar,
adultRadio varchar, child varchar, petRadio varchar, pet varchar, activity
varchar, home varchar, environment varchar, image varchar );
但是,如果我向 'adoption' table 输入的数据与 'dogs' table 中的任何行都不匹配,它将 return 最后匹配的行而不是 else 中的语句。有人对如何解决这个问题有任何建议吗?
<?php
session_start();
//Check if user is logged in, if not redirect to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="eng">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="view" content="width=device-width"/>
<title>North Coast Dog Rescue Contact Page</title>
<meta name="description" content="Responsive website for North Coast Dog
Rescue"/>
<meta name="author" content="Chloe Leighton B00710338"/>
<link rel="stylesheet" href="style.css"/>
<style type="text/css">
.formContainer #adultNo:checked ~ .conditional, #petYes:checked ~ .conditional {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
.formContainer #adultNo:not(:checked) ~ .conditional, #petYes:not(:checked) ~ .conditional {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
</style>
</head>
<body>
<div class="header">
<div class="container">
<div id="logo">
<img src="images/logo.png" alt="logo"/>
</div>
<div class="nav">
<ul>
<li class="home"><a href="index.html">Home</a></li>
<li class="about"><a href="aboutUs.html">About Us</a></li>
<li class="dogs"><a href="dogs.html">Dogs for Adoption</a></li>
<li class="current"><a href="adoptionForm.php">Online Adoption Form</a></li>
<li class="contact"><a href="contactUs.html">Contact Us</a></li>
<li class="login"><a href="login.php">Login</a></li>
</ul>
</div>
</div>
</div>
<form action="adoptionForm.php" method="post">
<div class="formContainer">
<h1>Adoption Form</h1>
<p>Please fill in this form to be matched to a suitable dog.</p>
<hr/>
<label><b>Name</b></label>
<input type="text" name="name"/>
<label><b>Address</b></label>
<input type="text" name="address"/>
<label><b>Do you have an adult only home?</b></label><br />
<input type="radio" name="adultRadio" id="adultYes" value="Yes" onclick="radio_check()"; /> Yes <br />
<input type="radio" name="adultRadio" id="adultNo" value="No" onclick="radio_check()"; /> No <br />
<div class="conditional">
<label><b>If you don't have an adult only home, please select the age of any children: </b></label><br />
<select id="child" size="0" name="child">
<option value="" name=""></option>
<option value="baby/toddler" name="baby/toddler">Baby/Toddler (0-4 years)</option>
<option value="youngChild" name="youngChild">Small Child (5-12 years)</option>
<option value="olderChild" name="olderChild">Older Child (13-18 years)</option>
</select><br />
</div>
<label><b>Do you have any pets?</b></label><br/>
<input type="radio" name="petRadio" id="petYes" value="Yes" onclick="radio_check()";/> Yes <br />
<input type="radio" name="petRadio" id="petNo" value="No" onclick="radio_check()";/> No <br />
<div class="conditional">
<label><b>If you have a pet, please select the description that fits them best: </b></label><br />
<select id="pet" name="pet">
<option value="" name=""></option>
<option value="youngDog" name="youngDog">Young, playful dog</option>
<option value="oldDog" name="oldDog">Older, calm dog</option>
<option value="cat" name="cat">Cat</option>
</select>
</div>
<label><b>Please select which activity level fits you best: </b></label><br/>
<select name="activity">
<option value="notActive" name="notActive">Not very active</option>
<option value="moderatelyActive" name="moderatelyActive">Moderately active</option>
<option value="veryActive" name="veryActive">Very active</option>
</select>
<label><b>Please select how often you are at home: </b></label><br/>
<select name="home">
<option value="little" name="littleHome">At home very little</option>
<option value="most" name="mostHome">At home most of the time</option>
<option value="all" name="allHome">There is always someone at home</option>
</select>
<label><b>Please select which best describes your home environment: </b></label>
<select name="environment">
<option value="city" name="city">Busy city</option>
<option value="suburbs" name="suburbs">Suburbs</option>
<option value="rural" name="rural">Quiet and rural</option>
</select>
<button class="submit" type="submit">Submit Form</button>
</div>
<div class="loginContainer" style="background-color:#f1f1f1">
<a href="logout.php"><button type="button" class="cancelbtn">Logout</button></a>
</div>
</form>
<div class="footer">
<p>North Coast Dog Rescue, Copyright © 2020</p>
</div>
</body>
</html>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$name = $_POST['name'];
$address = $_POST['address'];
$adultRadio = $_POST['adultRadio'];
$child = $_POST['child'];
$petRadio = $_POST['petRadio'];
$pet = $_POST['pet'];
$activity = $_POST['activity'];
$home = $_POST['home'];
$environment = $_POST['environment'];
$bool = true;
//Connect to server and database
$conn = mysqli_connect("localhost", "root", "", "ncdr_first", "3308");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo "Success: A proper connection to MySQL was made! <br>" ;
echo "Host information: " . mysqli_get_host_info($conn) ;
$query_ins = "INSERT INTO adoption (name, address, adultRadio, child,
petRadio, pet, activity, home, environment)
VALUES ('$name', '$address', '$adultRadio', '$child', '$petRadio',
'$pet', '$activity', '$home', '$environment')";
if($bool) {
mysqli_query($conn, $query_ins);
echo "<script>alert('Adoption form submitted successfully!');</script>";
echo "<script>window.location.assign('feedback.php');</script>";
}
mysqli_free_result($result);
mysqli_close($conn);
}
?>
SQL query result
查看 SQL 代码,它将 return 匹配的最后一个 ID 而不是最后一个 ID。您可以 select 仅最后插入以下内容,
$sql = "SELECT dogs.name, dogs.breed, dogs.age, dogs.sex, dogs.image, adoption.adoption_id
FROM dogs
INNER JOIN adoption ON dogs.adultRadio = adoption.adultRadio
AND dogs.child = adoption.child
AND dogs.petRadio = adoption.petRadio
AND dogs.pet = adoption.pet
AND dogs.activity = adoption.activity
AND dogs.home = adoption.home
AND dogs.environment = adoption.environment
WHERE adoption_id = (SELECT MAX(adoption_id) FROM adoption)";