2017-06-25 5 views
0

のindex.php

if (isset($_GET['type'])) { 
session_start(); 
$_SESSION['type']=$_GET['type']; 
} 
<a href="index.php?type=makeup"><button>Makeup Artists</button></a> 
<a href="index.php?type=photography"><button>photography</button></a> 

fetch.php

if(isset($_SESSION['type'])){ 
    $typesql = $_SESSION['type']; 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 

    $results->bind_param("s", $typesql); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 

    $results->execute(); 
    $results->bind_result($name, $type); 
} 

Iまだフィルタリングされた結果を得るために、私は以下の解決策を試しましたが、うまくいきませんでした。

答えて

1

あなたはセッション値をリセットし、フェッチページにempty()代わりのisset()を使用する必要があります。

/index.php

# Just start by default 
session_start(); 
# Set default 
$_SESSION['type'] = (isset($_GET['type']))? $_GET['type'] : false; 
?> 
<a href="index.php?type=makeup"><button>Makeup Artists</button></a> 
<a href="index.php?type=photography"><button>photography</button></a> 

/fetch.php

# Use empty() here 
if(!empty($_SESSION['type'])){ 
    $typesql = $_SESSION['type']; 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 

    $results->bind_param("s", $typesql); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} 
+0

から私が理解しているのは、フェッチページではissetを空に変更しただけですが、結果は同じです – Krim

+0

いいえ、必要があります私がインデックス上に持っているものも同様です。それがなければ、フェッチには何の効果もありません。 – Rasclatt

+0

これは動作します、ありがとうございます! – Krim

関連する問題