在php中我有一个mysql查询,如果传递的值不为空,则只应包含where子句。
不幸的是,mysql似乎不起作用。你能告诉我我做错了吗?
if (isset($_GET['q']))
{
$q = $_GET['q'];
}
else
$q ="";
$query = mysql_query("Select q1.Umsatz, kundendatenbank.Kundenname from
(SELECT sum(rechnung.Betrag) as Umsatz, kundendatenbank.Hauptname
fROM auftrag
JOIN rechnung ON rechnung.Auftragsnummer = auftrag.Auftragsnummer
JOIN kundendatenbank ON auftrag.Kundennummer=kundendatenbank.Kundennummer
JOIN auftrag_ma on auftrag.Auftragsnummer=auftrag_ma.Auftragsnummer";
if ($q!="")
$query = $query." where Quarter(auftrag_ma.Datum)='$q'";
$query = $query."group by kundendatenbank.Hauptname)q1
join kundendatenbank on q1.Hauptname=kundendatenbank.Kundennummer");
答案 0 :(得分:1)
if
语句。$query = "Select q1.Umsatz, kundendatenbank.Kundenname from
(SELECT sum(rechnung.Betrag) as Umsatz, kundendatenbank.Hauptname
FROM auftrag
JOIN rechnung ON rechnung.Auftragsnummer = auftrag.Auftragsnummer
JOIN kundendatenbank ON auftrag.Kundennummer=kundendatenbank.Kundennummer
JOIN auftrag_ma ON auftrag.Auftragsnummer=auftrag_ma.Auftragsnummer";
if ($q != "")
{
$q = mysql_real_escape_string($q);
$query = $query." where Quarter(auftrag_ma.Datum)='$q'";
}
$query = $query." GROUP BY kundendatenbank.Hauptname) q1
join kundendatenbank on q1.Hauptname=kundendatenbank.Kundennummer";
$result = mysql_query($query);
答案 1 :(得分:0)
实际上你所要做的就是它应该有效。如果没有选择任何内容而没有弄乱您的查询,那么where将保持为空。
if (isset($_GET['q']))
{
$q = $_GET['q'];
$whereclause = "WHERE <insert your table.columnname> = '".$q ."'";
}
else {
$whereclause = "";
}
$query = mysql_query("Select q1.Umsatz, kundendatenbank.Kundenname from
(SELECT sum(rechnung.Betrag) as Umsatz, kundendatenbank.Hauptname
FROM auftrag
JOIN rechnung ON rechnung.Auftragsnummer = auftrag.Auftragsnummer
JOIN kundendatenbank ON auftrag.Kundennummer=kundendatenbank.Kundennummer
JOIN auftrag_ma on auftrag.Auftragsnummer=auftrag_ma.Auftragsnummer $whereclause";
$query = $query."group by kundendatenbank.Hauptname)q1
join kundendatenbank on q1.Hauptname=kundendatenbank.Kundennummer");