我需要你帮助我
我尝试了几种方法而且出现错误
排序如下: 率DESC 年龄ASC 高度DESC 体重ASC
也想按字段排序
如果您能用一个例子来解释,那么通过
来注意订单的确切方式和位置是完美的 <? Php
$ O ='';
/ / Put the appropriate information:
$ Data = array ('localhost', 'user', 'password');
$ Con = mysql_connect ($ data [0], $ data [1], $ data [2]);
if ($ con) {
$ O = 'Error: Could not connect to server. '. mysql_error ();
echo $ o;
exit;
}
/ / Change the name of the database for yours
$ Db_name = 'database';
if (mysql_select_db ($ db_name, $ con)) {
$ O = 'Error: Could not select database "'. $ Db_name. '". '. mysql_error ();
echo $ o;
exit;
}
$ Table = 'users' / / Change this only if you know what it does.
$ Query = "SELECT * FROM $ table";
$ Where = "WHERE";
$ And = 0;
if (isset ($ _GET ['name']) &&! empty ($ _GET ['name'])) {
$ Where. = "Name LIKE '% $ _GET [name]%'";
$ And = 1;
}
if (isset ($ _GET ['rate'])) {
$ E = explode ('-', $ _GET ['rate']);
if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Rate BETWEEN $ e [0] AND $ e [1]";
$ And = 1;
}
}
if (isset ($ _GET ['age'])) {
$ E = explode ('-', $ _GET ['age']);
if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Age BETWEEN $ e [0] AND $ e [1]";
$ And = 1;
}
}
if (isset ($ _GET ['Height'])) {
$ E = explode ('-', $ _GET ['Height']);
if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Height BETWEEN $ e [0] AND $ e [1]";
$ And = 1;
}
}
if (isset ($ _GET ['weight'])) {
$ E = explode ('-', $ _GET ['weight']);
if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Weight BETWEEN $ e [0] AND $ e [1]";
$ And = 1;
}
}
if (isset ($ _GET ['City']) &&! empty ($ _GET ['city'])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "City = '$ _GET [City]'";
$ And = 1;
}
if (isset ($ _GET ['Eyes']) &&! empty ($ _GET ['Eyes'])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Eyes = '$ _GET [Eyes]'";
$ And = 1;
}
if (isset ($ _GET ['Hair']) &&! empty ($ _GET ['Hair'])) {
if ($ and === 1)
$ Where. = "AND";
$ Where. = "Hair = '$ _GET [Hair]'";
$ And = 1;
}
if (strlen ($ where)> 6)
$ Query. = $ Where;
$ Result = mysql_query ($ query, $ con);
if ($ result) {
$ Nrows = mysql_num_rows ($ result);
if ($ nrows> 0) {
$ O ='';
while ($ row = mysql_fetch_assoc ($ result)) {
$ O. = "$ Row [image]";
}
$ O. = "";
Else {}
$ O = 'There were no results';
}
Else {}
$ O = 'Error: Unable to run the query. '. mysql_error ($ con);
}
mysql_free_result ($ result);
mysql_close ($ con);
echo $ o. "";
exit;
?>
答案 0 :(得分:0)
在尝试修复SQL错误之前,请修复PHP错误。例如;
$ O
不正确,应为$O
和$_GET[]
。
此外,PHP区分大小写,因此当您的意思是$o
时,您无法使用$O
。
关于SQL,正如Benjamin指出的那样,你需要在SQL关键字之前和之后放置空格,而$ Query. = $ Where;
可能应该是$Query. = " ".$Where;
此外,由于用户的权限取决于他们访问的数据库,因此您应在提供用户详细信息之前选择数据库。 (或同时)。
对于复杂的查询,请尝试使用MySQL shell。一旦找出查询,然后将其转移到PHP端。至少我是这样做的。
祝你好运,午睡