2015-06-24 33 views
1

我試圖讓根據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); 
    } 
} 

我在我的數據庫中有以下幾行:

Database

期待的結果是:

  1. 如果我在搜索字段中$echo $total_guests 輸入2015年6月30日應回聲 - (因爲2 + 3)
  2. 如果我在搜索字段輸入2015-06-25$echo $total_guests 應該回顯 - (因爲nmbr_of_guests列剛6 日期)
  3. ,如果我進入任何其他日期在搜索領域,它應該呼應沒有 一個發現的日期:任何其他日期。請優化 你的日期。

第三是精細我得到的紅線文本時未找到該日期。

但是,當我進入2015年6月30日2015年6月25日我得到只是空白。 這意味着$total_guests;什麼都不返回/空白。

怎樣才能讓$total_guests;顯示日期(本例中爲5或6)的nmbr_of_guests行的值的總和?


注意:這是一箇舊網站。我將完成此操作後,將所有MySQLi更換爲PDO。這是一個很大的文件,需要時間來替換找到MySQLi的所有行。

+2

mysqli的是公平的。你一定是在討論不推薦使用的'mysql_'函數。但你應該保護你的腳本againts sql注入 – Brewal

+1

你確定你的查詢正在工作。我認爲這裏有一些錯誤日期SUM(nmbr_of_guests)' –

+0

嗨,你有什麼輸出? –

回答

2

逗號缺少日期和總和...查詢應該是─

$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 '<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); 

嘗試查看按如下─

$total_guests = mysqli_query($con, 'SELECT 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 '<h3>Total guest for the date of '. $serch_text .' are '.$total_guests.'</h3>';   
    mysqli_close($con); 
+0

[這似乎是我的評論](http://stackoverflow.com/questions/31021825/how-to-sum-rows-values-according-to-另一行,其中包含相同的價值#comment50068791_31021825) –

+0

哦......傢伙......謝謝,但我仍然得到http://i61.tinypic.com/2ro446w.jpg –

+0

請檢查更新和嘗試。 –

-1

能不能請你這樣

$total_guests = mysqli_query($con, 'SELECT date,nmbr_of_guests FROM guest_tbl WHERE date = "'.$serch_text.'"'); 

分配一個可變的 「0」 和計數的值

$total = 0; 
foreach ($total_guests as $guests){ 
$total = $total + $guests->nmbr_of_guests; 
} 
echo $total; 
+0

我發現這個問題..這是錯誤的'表名'..表名是'guest_tbl'不'客人'。無論如何,現在我正確地更改表名稱後,我得到了這個**可捕捉的致命錯誤:無法將類mysqli_result的對象轉換爲第24行C:\ xampp \ htdocs \ guest \ index.php中的字符串** 24行是'echo $ total_guests;'我用你的代碼也一樣..這意味着我們的SUMMING代碼都很好..但仍然有另一個問題.. –

+0

你可以請現在檢查它 –

+0

在我添加更新後的代碼I我得到這個[鏈接](http://i58.tinypic.com/x1lj5u.jpg) –

相關問題