因为我可以将查询结果排序到我的sql数据库


as I can sort the results of a query to my sql database?

我需要你的帮助

我尝试了几种方法,但我得到错误

排序要求如下:率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;
                   ?>

在您尝试修复SQL错误之前,请先修复PHP错误。例如;$ O不正确,应该是$O$_GET[]。另外,PHP是区分大小写的,所以当您表示$O时,不能使用$o

关于SQL,正如Benjamin指出的那样,您需要在SQL关键字之前和之后放置空格,并且$ Query. = $ Where;可能应该是$Query. = " ".$Where;

另外,由于用户的权限取决于他们正在访问的数据库,因此应该在提供用户详细信息之前选择数据库。(或同时).

对于复杂的查询,尝试使用MySQL shell。一旦确定了查询,就可以将其转到PHP端。至少我是这样做的。

祝你好运,小睡