PHP isnull第一遍/第二遍标志

时间:2012-08-23 17:22:10

标签: php session reload isnull

我有一个PHP结果页面,它以“first-pass”开头,返回所有行。这是该县所有披萨店的搜索列表。

SELECT * from pizzeria;

然后用户可以深入了解更多细节...该页面还有一个CSS下拉菜单,用户可以在其中选择一个特定的邻域(带有URL):

href="samepage.php?neighborhood=HELLSKITCHEN"

然后在我拿起$_GET[]

后更改查询
SELECT * from pizzaria WHERE nbh=(the $_GET[] variable sent in the URL);

但是我希望该页面可以自行调用,我在顶部有header("Cache-Control:no-cache");

我正在尝试使用isnull()函数创建第一遍或第一次访问标志变量:

if (is_null($firstpass)) {
    $query = SELECT all the records from the pizzaria table
} else {
    $query = SELECT only the records WHERE I $_GET[] the value from the reloaded URL
}

似乎$firstpass变量不会重新加载。我应该这个变量吗? (虽然仍有不断重置的问题)

或者可能实施其他方法?

我知道我可以重定向到另一个第二页并回到此页面以避免“已发送标题”,但我希望避免往返客户端。

是否有关于使用新信息重新加载的已知最佳做法?在这里有点新的PHP。感谢

2 个答案:

答案 0 :(得分:1)

也许我不太了解你的问题,但你为什么不这样做:

if (!isset($_GET['example'])) {
    $query = 'SELECT * FROM pizzerias';
} else {
    $query = 'SELECT * FROM pizzerias WHERE pizzeria = \'.mysql_real_escape_string($_GET['example']).\' LIMIT 1';
}

在第一次通过,因为,似乎只有当用户选择比萨饼时才设置$ _GET变量?

答案 1 :(得分:0)

这是一个更有针对性的答案。

注意: mysql_*函数正在折旧,因此请改用PDO。在我的例子中,我是半懒惰而不使用PDO。

//Connect to database and define table up here
...
if(!isset($_GET['neighborhood')){
    $q = "SELECT * FROM pizzeria;";
}else{
    $q = sprintf("SELECT * FROM pizzeria WHERE nbh=%s",mysql_real_escape_string($_GET['neighborhood']));
}
$query = mysql_query($q);
foreach($row = mysql_fetch_array($query,MYSQL_ASSOC){
    //display the updated view of restaurants.
}

我还建议您使用jQuery来表示该Web 2.0效果。当您从下拉菜单中选择并且没有页面重新加载时神奇地移动时,这真的很不错。