首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果规则$_POST

如果规则$_POST
EN

Stack Overflow用户
提问于 2013-11-18 04:08:47
回答 1查看 95关注 0票数 0

更新

我已经将我的代码改进为:

代码语言:javascript
运行
复制
$query_init = "SELECT * FROM data WHERE 1=1";


24 // $_POST to PHP var.
25 $t_bebida = $_POST['t_bebida'];
26 $t_uf = $_POST['t_UF'];
27 $t_canal = $_POST['t_canal'];
28 $t_ano = $_POST['t_ano'];
29
30 if ($t_bebida != "Todos") {
31   $query_final .= " AND BEBIDA = '$t_bebida'";};
32  
33 if ($t_ano != "Todos") {
34    $query_final .= " AND ANO = '$t_ano'";};
35
36 if ($t_uf != "Todos") {
37    $query_final .= " AND UF = '$t_uf'";};
38
39 if ($t_canal != "Todos") {
40   $query_final .= " AND CANAL = '$t_canal'";};
41  
42 $query = $query_init . $query_final;

但是,当我收到t_bebida的“todo”时,我会得到以下错误:

注意:未定义变量:第36行中的query_final

有什么帮助吗?

不久前,我问了一个关于$_POST治疗的问题。

但在那里,他们回答我,我需要重新制定我的查询,并做一些IFs查询运行正常。

我有这样的情况:

用户将通过$_POST发送此vars:

代码语言:javascript
运行
复制
t_bebida
t_uf
t_canal
t_ano

这些vars中的每一个都可以带有"Todos“的值。

为了举例说明这种情况,这是我的代码:

代码语言:javascript
运行
复制
$query_init = "SELECT * FROM data WHERE";

// $_POST to PHP var.
$t_bebida = $_POST['t_bebida'];
$t_uf = $_POST['t_UF'];
$t_canal = $_POST['t_canal'];
$t_ano = $_POST['t_ano'];

//IF BEBIDA == todos
if ($t_bebida == "Todos") {
$query_final = " UF = '$t_uf' AND CANAL = '$t_canal' AND ANO = '$t_ano' ORDER BY BEBIDA ASC";}

//IF UF == todos
if ($t_uf == "Todos") {
$query_final = " BEBIDA = '$t_bebida' AND UF = '$t_uf' AND CANAL = '$t_canal' AND ANO = '$t_ano'";} 

//IF CANAL ==todos
if ($t_canal == "Todos") {
$query_final = " BEBIDA = '$t_bebida' AND UF = '$t_uf' AND ANO = '$t_ano'";}

//IF ANO == todos
if ($t_canal == "Todos") {
$query_final = " BEBIDA = '$t_bebida' AND UF = '$t_uf' AND CANAL = '$t_canal'";}

//IF BEBIDA + UF == todos
if ($t_bebida == "Todos" and $t_uf == "Todos") {
$query_final = " CANAL = '$t_canal' AND ANO = '$t_ano'";}

//IF BEBIDA + UF + CANAL == todos
if ($t_bebida == "Todos" and $t_uf == "Todos" and $t_canal == "Todos") {
$query_final = " ANO = '$t_ano'";}

//IF BEBIDA + UF + ANO == todos
if ($t_bebida == "Todos" and $t_uf == "Todos" and $t_ano == "Todos") {
$query_final = " CANAL = '$t_canal'";}

//IF BEBIDA + CANAL == todos
if ($t_bebida == "Todos" and $t_canal == "Todos"){
$query_final = " UF = '$t_uf' AND ANO = '$t_ano'";}

//IF BEBIDA + CANAL + ANO == todos
if ($t_bebida == "Todos" and $t_canal == "Todos" and $t_ano == "Todos"){
$query_final = " UF = '$t_uf'";}

//IF BEBIDA + ANO == todos
if ($t_bebida == "Todos" and $t_ano == "Todos"){
$query_final = " UF = '$t_uf' AND CANAL = '$t_canal'";}

//IF UF + CANAL == todos
if ($t_uf == "Todos" and $t_canal == "Todos"){
$query_final = " BEBIDA = '$t_bebida' AND ANO = '$t_ano'";}

//IF UF + ANO == todos
if ($t_uf == "Todos" and $t_ano == "Todos"){
$query_final = " BEBIDA = '$t_bebida' AND CANAL = '$t_canal'";}

//IF UF + CANAL + ANO == todos
if ($t_uf == "Todos" and $t_canal == "Todos" and $t_ano == "Todos"){
$query_final = " BEBIDA = '$t_bebida'";}

//IF CANAL + ANO == todos
if ($t_uf == "Todos" and $t_ano == "Todos"){
$query_final = " BEBIDA = '$t_bebida' AND CANAL = '$t_canal'";}

//IF NONE == todos
if ($t_bebida != "Todos" and $t_uf != "Todos" and $t_ano != "Todos" and $t_UF != "Todos" and $t_canal != "Todos"){
$query_final = " BEBIDA = '$t_bebida' AND UF = '$t_uf' AND CANAL = '$t_canal' AND ANO = '$t_ano'";}

// Build-UP query
$query = $query_init . $query_final;

这并不适用于我,它只适用于't_bebida == todos‘或’not == todo‘。

所以,我要面对的是,我没有正确地构造IFs到查询。

有人能帮我弄清楚吗.

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 04:20:39

待办事项的翻译

最好重写你的代码。并使用这一特征

代码语言:javascript
运行
复制
$query_init = "SELECT * FROM data WHERE 1=1";
$query_final = '';

if ($t_bebida != "Todos") 
    $query_final .= " AND BEBIDA = '$t_bebida'";

if($t_ano != "Todos")
    $query_final .= " AND ANO = '$t_ano'";

if ($t_uf != "Todos")
    $query_final .= " AND UF = '$t_uf'";

if ( $t_canal != "Todos")
    $query_final .= " AND CANAL = '$t_canal'";

$query = $query_init . $query_final;

也不要忘记使用预先准备好的语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20039921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档