我有这样的查询:
$query = "SELECT * FROM dados_kirin WHERE BEBIDA = '$_POST[t_bebida]' AND UF = '$_POST[t_UF]' AND CANAL = '$_POST[t_canal]' AND ANO = '$_POST[t_ano]'";
上面的查询将无法正常运行,因为t_bebida可以是ALL。
我想对待$ _POST。如果是ALL,则必须将其翻译为*。
我尝试过类似的事情:
= $_POST[t_bebida] = $bebida;
if ($bebida = "Todos") {
$bebida = '*'
};
但Dreamweaver告诉我这是错误的。
有人知道这样做的方法吗?
我正在使用PHP和MYSQL。
谢谢你们!
更新
我试过这个:
$t_bebida = $_POST[t_bebida];
if ($t_bebida == "Todos") {
$t_bebida = '*';
}
但我制作了一个糟糕的查询结构。
我认为我需要的是:
if($ t_bebida ==“Todos”),不要在WHERE子句中使用BEBIDA。
$query = "SELECT * FROM dados_kirin WHERE BEBIDA = '$_POST[t_bebida]' AND UF = '$_POST[t_UF]' AND CANAL = '$_POST[t_canal]' AND ANO = '$_POST[t_ano]'";
更新2
很抱歉,这个问题在查询中有一些MySQL结构错误。谢谢 所有的努力尝试帮助我。与此同时,我会解决它。
答案 0 :(得分:3)
语法中有多个错误:
$_POST[t_bebida] = $bebida;
if ($bebida = "Todos") {
$bebida = '*'
};
1st:您$bebida
的变量分配:
$bebida = $_POST[t_bebida];
第二名:$ _POST变量应为:
$bebida = $_POST['t_bebida']; //assuming that in your form you have an input name=t_bebida
第3名:在你的if语句中,这应该是:
if ($bebida == "Todos") {
第4页:表达式上缺少分号:
$bebida = '*';
^ here
第五:你不必在if语句的结束花括号上加分号。现在这是最终版本:
$bebida = $_POST['t_bebida'];
if ($bebida == "Todos") {
$bebida = '*';
}
我还注意到,查询中的$_POST
变量不正确地访问,就像在第二项中一样。此外,您必须清理您的帖子变量以防止SQL注入。
以防万一:
请注意mysql扩展名is now deprecated and will be removed sometime in the future。那是因为它古老,充满了不良做法,缺乏一些现代特色。不要用它来编写新代码。请改用PDO或mysqli_*。
答案 1 :(得分:0)
您的比较运算符错误。你正在使用=这是一个赋值运算符。在你的例子中,它将永远是真的。您需要使用==这是一个比较运算符。
if ($bebida = "Todos") {
应该是
if ($bebida == "Todos") {