2017-05-23 49 views
2

如何將2個會話變量添加到我的MYSQL查詢中?將兩個會話變量添加到MYSQL查詢中

這工作,因爲我只用變量$stad

session_start(); 
$_SESSION['stad'] = $_POST['stad']; 

//Database connectie 
$link = mysqli_connect("*", "*", "*", "entour_nl") or die("Error ". mysqli_error($link)); 

//Query // 
$query = "SELECT * FROM Fissa_test WHERE stad='".$_SESSION['stad']."' AND datum >= CURDATE() ORDER BY datum"; 

$result = mysqli_query($link, $query); 

//loop door de resultaten 
while($row = mysqli_fetch_assoc($result)){ 
?> 

<article class="fissa-item"> 
    <div class="left-side"> 
     <img src="<?php echo $row['flyer_url'];?>" href="<?php echo $row['flyer_url'];?>" height="100%" width="100%"> 
    </div> 


    <div class="right-side"> 
     <h3 class="naam-feest" style="margin-top: 1px;"><?php echo $row['naam_feest'];?></h3> 
     <h5 class="line-up"><?php echo $row['line_up'];?></h5> 
     <h4 class="info"><?php echo $row['plaats'];?> | <?php echo date("d-m-Y", strtotime($row['datum']));?> | <?php echo $row['tijd'];?> | <?php echo $row['leeftijd'];?></h4> 
     <a href="<?php echo $row['ticket_url'];?>"><button class="tickets">KOOP TICKETS</button></a> 
    </div> 

</article> 
<?php 
} 
?> 
<div class="footer"> 
    <button class="filter" onclick="openNav()">FILTER</button> 
</div> 

<div id="myNav" class="overlay"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <div class="overlay-content"> 
    <form action="lit_stad_leeftijd.php" method="post"> 
     <button name="leeftijd" value="14+">14+</button> 
     <button name="leeftijd" value="15+">15+</button> 
     <button name="leeftijd" value="16+">16+</button> 
     <button name="leeftijd" value="17+">17+</button> 
     <button name="leeftijd" value="18+">18+</button> 
     <button name="leeftijd" value="21+">21+</button> 
     <button name="leeftijd" value="23+">23+</button> 
     <button name="leeftijd" value="*">ALL</button> 
    </form> 
    </div> 
</div> 

但是當我包括$leeftijd。該查詢不起作用。

lit_stad_leeftijd.php

session_start(); 
$_SESSION['leeftijd'] = $_POST['leeftijd']; 
$_SESSION['stad']  = $_POST['stad']; 

//Database connectie 
$link = mysqli_connect("*", "*", "*", "*") or die("Error ". mysqli_error($link)); 

//Query // 
$query = "SELECT * FROM Fissa_test WHERE stad='".$_SESSION['stad']."' AND leeftijd='".$_SESSION['leeftijd']."' AND datum >= CURDATE() ORDER BY datum"; 

$result = mysqli_query($link, $query); 

//loop door de resultaten 
while($row = mysqli_fetch_assoc($result)){ 
    ?> 

    <article class="fissa-item"> 
     <div class="left-side"> 
      <img src="<?php echo $row['flyer_url'];?>" href="<?php echo $row['flyer_url'];?>" height="100%" width="100%"> 
     </div> 

     <div class="right-side"> 
      <h3 class="naam-feest" style="margin-top: 1px;"><?php echo $row['naam_feest'];?></h3> 
      <h5 class="line-up"><?php echo $row['line_up'];?></h5> 
      <h4 class="info"><?php echo $row['plaats'];?> | <?php echo date("d-m-Y", strtotime($row['datum']));?> | <?php echo $row['tijd'];?> | <?php echo $row['leeftijd'];?></h4> 
      <a href="<?php echo $row['ticket_url'];?>"><button class="tickets">KOOP TICKETS</button></a> 
     </div> 
    </article> 
    <?php 
} 
?> 
<div class="footer"> 
    <button class="filter" onclick="openNav()">FILTER</button> 
</div> 

<div id="myNav" class="overlay"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <div class="overlay-content"> 
    <form action="lit_stad_leeftijd.php" method="post"> 
     <button name="leeftijd" value="14+">14+</button> 
     <button name="leeftijd" value="15+">15+</button> 
     <button name="leeftijd" value="16+">16+</button> 
     <button name="leeftijd" value="17+">17+</button> 
     <button name="leeftijd" value="18+">18+</button> 
     <button name="leeftijd" value="21+">21+</button> 
     <button name="leeftijd" value="23+">23+</button> 
     <button name="leeftijd" value="*">ALL</button> 
    </form> 
    </div> 
</div> 

錯誤消息我得到:

警告:在session_start():不能發送會話cookie - 頭已經發出(輸出開始/客戶/ 9/f/7/website.nl/httpd.www/fissa/lit_stad_leeftijd.php:16)在/customers/9/f/7/website.nl/httpd.www/fissa/lit_stad_leeftijd.php在線21警告: session_start():無法發送會話緩存限制器 - 已發送的頭文件(輸出開始於/customers/9/f/7/website.n l/httpd.www/fissa/lit_stad_leeftijd.php:16)在第21行的/customers/9/f/7/website.nl/httpd.www/fissa/lit_stad_leeftijd.php中注意:未定義的索引:stad in/customers /第22行的9/f/7/website.nl/httpd.www/fissa/lit_stad_leeftijd.php注意:未定義的索引:stad in /customers/9/f/7/website.nl/httpd.www/fissa/lit_stad_leeftijd。 php on line 32 FILTER×

+1

嘗試輸出('echo')您的'$ query',看看究竟是什麼查詢正在執行。嘗試自己執行它(例如使用phpmyadmin),並查看是否得到任何結果。在附註中,請勿將用戶提交的數據直接提供給查詢。使用預準備的語句它將防止SQL注入,以及其他許多好處。 – RToyo

+0

@RobbieToyota這是我得到的錯誤消息: – Mooelb

回答

0

你爲什麼要將該值設置爲$_SESSION變量?你可以只是做

$query = "SELECT * 
    FROM Fissa_test 
    WHERE stad='" . $_POST['stad'] . "' 
    AND leeftijd='" . $_POST['leeftijd'] . "' 
    AND datum >= CURDATE() ORDER BY datum"; 

如果變量仍然沒有被添加到查詢,那麼問題可能是你沒有正確的數據發佈到該頁面。

0

您發佈的錯誤消息表示您在數據已經發送到輸出緩衝區(並因此發送了標題信息)之後調用session_start()

PHP documentation for session_start()有一張紙條:

要使用基於Cookie的會話,在session_start()必須outputing什麼瀏覽器之前調用。

這意味着必須在任何「HTML輸出」之前調用session_start()。這包括空白等。簡單的解決方案是簡單地將session_start()作爲文件中的第一行代碼。

<?php 
session_start(); 
?> 
<html> 
    <body> 
     [...] 
    </body> 
</html>