我試圖讓根據date
用戶number of gusts
可能能夠通過輸入date
如何根據包含相同值的另一行來計算SUM值?
我的表格來搜索number of guests
的日期是:
<form action="index.php" method="post" class="booking_reference">
<input type="text" placeholder="date" required name="search_text">
<span class="arrow">
<input type="submit" value="CHECK" name="search" class="search_button">
</span>
</form>
我的動作部分是:
if (isset($_POST['search'])){
$serch_text = $_POST["search_text"];
$con=mysqli_connect("localhost","root","","guest");
// Check connection
if (mysqli_connect_errno()) {
die ("Failed to connect to MySQL: " . mysqli_connect_error());
}
$searching_date = $serch_text;
$searchroute = "select * from guest_tbl where date = '$searching_date'";
$result = $con->query($searchroute);
$row = $result->fetch_assoc();
if ($row == 0) { echo '<div style="color: red;">No one found for the date: <b>' . $serch_text . '</b>. Please refine your date</div>' ;
} else {
echo '<h3>Total guest for the day : '. $serch_text .'</h3>';
$total_guests = mysqli_query($con, 'SELECT date SUM(nmbr_of_guests) FROM guest WHERE date = "'.$serch_text.'"'); // selecting and summing the value of all the 'nmbr_of_guests' rows in same date - $serch_text
echo $total_guests;
mysqli_close($con);
}
}
我在我的數據庫中有以下幾行:
期待的結果是:
- 如果我在搜索字段中
$echo $total_guests
輸入2015年6月30日應回聲 - (因爲2 + 3) - 如果我在搜索字段輸入2015-06-25
$echo $total_guests
應該回顯 - (因爲nmbr_of_guests
列剛6 日期) - ,如果我進入任何其他日期在搜索領域,它應該呼應沒有 一個發現的日期:任何其他日期。請優化 你的日期。
第三是精細我得到的紅線文本時未找到該日期。
但是,當我進入2015年6月30日或2015年6月25日我得到只是空白。 這意味着$total_guests;
什麼都不返回/空白。
怎樣才能讓$total_guests;
顯示日期(本例中爲5或6)的nmbr_of_guests
行的值的總和?
注意:這是一箇舊網站。我將完成此操作後,將所有MySQLi更換爲PDO。這是一個很大的文件,需要時間來替換找到MySQLi的所有行。
mysqli的是公平的。你一定是在討論不推薦使用的'mysql_'函數。但你應該保護你的腳本againts sql注入 – Brewal
你確定你的查詢正在工作。我認爲這裏有一些錯誤日期SUM(nmbr_of_guests)' –
嗨,你有什麼輸出? –