PHP isnull第一次通过/第二次通过标志

PHP isnull第一次通过/第二次通过标志,php,session,reload,isnull,Php,Session,Reload,Isnull,我有一个PHP结果页面,它从“第一次通过”开始,返回所有行。这是全县所有比萨饼店的搜索列表 SELECT * from pizzeria; 然后用户可以深入了解更多细节。。。该页面还有一个CSS下拉菜单,用户可以在其中选择特定的邻居(带有URL): 然后在我选择$\u GET[] SELECT * from pizzaria WHERE nbh=(the $_GET[] variable sent in the URL); 但是我希望页面调用自己,我有标题(“缓存控制:无缓存”)在顶部 我正

我有一个PHP结果页面,它从“第一次通过”开始,返回所有行。这是全县所有比萨饼店的搜索列表

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

然后在我选择
$\u GET[]

SELECT * from pizzaria WHERE nbh=(the $_GET[] variable sent in the URL);
但是我希望页面调用自己,我有
标题(“缓存控制:无缓存”)在顶部

我正在尝试使用
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
变量在重新加载时不起作用。我应该使用该变量吗?(尽管仍存在不断重置的问题)

或者实施其他方法

我知道我可以重定向到单独的第二个页面,javascript可以返回到这个页面,以避免“已经发送了标题”,但我希望避免返回到客户端的往返过程


是否有已知的使用新信息重新加载的最佳实践?这里对PHP有点陌生。谢谢

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

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

因为,似乎只有在用户选择比萨店时才设置$\u GET变量?

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

注意:
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.
}

我还建议您使用Web2.0实现这种效果。当你从下拉菜单中进行选择时,事情会在不重新加载页面的情况下神奇地移动,这真是太好了。

你意识到“pizzeria”中只有一个“a”,对吧?哈哈,哇,这是一个蹩脚的意式警告:这种方法容易受到SQL注入的攻击,不要使用它@user1349089
pizzeria
也需要是
pizzeria
,存在SQL漏洞,它将只显示一个结果,而您需要整个邻居的结果。我认为xavier Z搞错了这个答案。您可能应该重新考虑您的决定,因为这是“答案”。@Glendayton感谢您的漏洞主题。我将在黑板上搜索SQL注入防御。同样,我是PHP新手,但这里可能已经多次讨论过注入主题。我肯定会找到一堆线程。好的,在mysql\u real\u escape\u string()上找到了一堆线程。再次感谢。@user1349089我的回答非常全面,你可能需要重新考虑。你不认为你脱离了主题吗?这里没有mysql_*函数!他正在使用PHP。至少我的方法展示了这个特定主题的知识。好的,这里有一个懒惰的因素(尽管它的时间更多)。没有使用PDO,但我添加了mysql_real_escape_string()函数。知道了。谢谢
//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.
}