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

时间:2013-02-27 13:21:22

标签: php mysql sql

我需要你帮助我

我尝试了几种方法而且出现错误

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

1 个答案:

答案 0 :(得分:0)

在尝试修复SQL错误之前,请修复PHP错误。例如; $ O不正确,应为$O$_GET[]。 此外,PHP区分大小写,因此当您的意思是$o时,您无法使用$O

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

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

对于复杂的查询,请尝试使用MySQL shell。一旦找出查询,然后将其转移到PHP端。至少我是这样做的。

祝你好运,午睡